图解TCP/IP读书笔记

OSI参考模型

1
2
3
4
5
6
7
7、应用层:针对特定应用的协议
6、表示层:设备固有数据格式和网络标准数据格式的转换
5、会话层:通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。
4、传输层:管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠的传输到目标地址)。
3、网络层:地址管理与路由选择。
2、数据链路层:互联设备之间传送和识别数据帧。
1、物理层:以'0' '1'代表电压的高低、灯光的闪灭。界定连接器和网线的规格。

OSI协议与OSI参考模型

OSI协议是为了让异构的计算机之间能够相互通信、由ISO和ITU-T推进其标准化的一种网络体系结构。

OSI将通信功能划分为7个分层,称作OSI参考模型。OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。遵循OSI协议的产品叫做OSI产品,而他们所遵循的通信被称为OSI通信。

面向连接

在发送数据前,需要在收发主机之间连接一条线路。

面向无连接

不要建立和断开连接,发送端可于任何时候自由发送数据。接收端不知道何时从哪里接收数据,所以接收端得时常确认是否收到数据。

分组交换(蓄积交换)

让连接到通信电路的计算机将要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。

大致过程:发送端将数据分组发给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后转发给目标计算机。路由器顺序收到并缓存,然后顺序发送出去。如果路由器缓存饱和或溢出,可能会发生分组数据丢失。

单播:一对一通信

广播:一对多通信,不限定对象

多播:一对多通信,不过限定了某一组主机作为接收端

任播:从目标主机群选择一个最符合网络条件的主机作为目标主机发送消息。被选中的将返回一个单播信号,随后两者开始通信。

地址

MAC地址:制造商对网卡进行指定,虽然可以确保唯一性,但是不知道买个网卡被用到了那个地方,对于寻找地址没有起到作用。

IP地址:由网络号和主机号组成,如果网络号相同,说明他们处于同一个网段。

网络构成要素

虚拟化和云

虚拟化:当一个网站(也可以是其他系统)需要调整运营所使用的资源时,并不增减服务器、存储设备、网络等实际的物理设备,二十利用软件将这些物理设备虚拟化,在有必要增减资源的时候,通过软件按量增减的一种机制。

云:利用虚拟化技术,根据使用者的情况动态调整必要资源的机制被人们称作“云”。

TCP/IP协议群

1
2
3
4
应用协议:HTTP SMTP FTP TELNET SNMP
传输协议:TCP UDP
路由控制协议:RIP OSPF BGP
网际协议:IP ICMP ARP

TCP/IP的标准化

与一般的标准化过程不同,他不是由标准化组织制定为标准后才开始投入使用,而是在其成为标准的那一刻为止,已经被较为充分的实验并得到较广的普及。

TCP/IP和OSI参考模型

IP

跨越网络传送数据包,使整个互联网都能收到数据的协议。这期间使用IP地址作为主机的标识。但不具有重发机制,属于非可靠性传输协议。

ICMP

数据包在发送途中发送异常导致无法到达,需要给发送端发送一个发生异常的通知。也被用来检测网络健康状况。

ARP

从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。

TCP

面向连接,可靠性传输,有效利用带宽,缓解网络拥堵。为了建立与断开连接,至少需要7次的发包收包。不利于视频等场合使用。

UDP

面向无连接,不可靠。常用于分组数据较少或多播、广播通信及视频等媒体领域。

WWW

浏览器与服务器之间通信所用的协议是HTTP,所传输数据的主要格式是HTML。HTTP属于OSI应用层的协议,而HTML属于表示层的协议。

SMTP

发送邮件时用到的协议。

FTP

其他计算机硬盘和本地硬盘进行文件传输,这个过程用到的协议是FTP。

TELNET与SSH

远程登录所需的协议。

SNMP

网络管理所需的协议。

MAC

地址长48比特,任何一个网卡的MAC地址都是唯一的,在全世界都不会重复。

共享介质型网络

1.争用方式

CSMA(载波监听多路访问):先到先发送

CSMA/CD:每个站提前检查冲突,一旦发生冲突,则尽早释放信道。

1
2
3
如果载波信道上没有数据流动,则任何站都可以发送数据。
检查是否会发生冲突。一旦发生冲突时,放弃发送数据,同时立即释放载波信道。
放弃发送以后,随机延时一段时间,再重新争用介质,重新发送帧。

2.令牌传递

只有获得令牌的站才能发送数据。

非共享介质网络

发送端和接收端并不共享通信介质。

IP

IP地址属于网络层地址。

IP地址由网络地址和主机地址组成。网络地址保证相互连接的每个段的地址不重复,相同段内的主机网络地址是相等的。主机地址保证相同段内的地址不重复。

路由控制:将分组数据发送到最终目标地址的功能。

为什么IP要面向无连接

为了简化和提速,面向连接比面向无连接处理相对复杂,甚至管理连接本身就是一个复杂的事情。每次通信都要事先建立连接。

但是为了提高可靠性,上一层的TCP采用面向有连接型。

IP地址的分类

A类地址:0.0.0.0~127.0.0.0 首位以0开头

B类地址:128.0.0.1~191.255.0.0 前两位是10开头

C类地址:192.168.0.0~239.255.255.0 前三位是110开头

D类地址:224.0.0.0~239.255.255.255 前四位是1110开头

(用比特位表示主机地址时,不能全为0或1,全为0是在2对应的网络地址和IP地址不可获知的情况下使用,全为1的主机地址常作为广播地址)

多播一般使用D类地址,可以通过路由器转发,但是广播不可以通过路由器转发。

既定已知的多播地址

子网和子网掩码

实际是将原来A.B.C类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。

子网计算:

1)将子网数目转化为二进制来表示

2)取得该二进制的位数,为 N

3)取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。

CIDR

采用任意长度分割IP地址的网络标识和主机标识。

VLSM

可以随机修改组织内各个部门的子网掩码长度的机制。

私有网络的IP地址

IP地址和路由控制

路由控制表的聚合

用来减少路由表的条目。

路径MTU

为了防止数据在传输途中被分片,路径MTU是指路径中所有数据链路最小的MTU,路由器按照路径MTU进行分片后再进行发送。

路径MTU发现的步骤

IPV6

128比特,一般写为8个16位字节。

IPv4报头

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
版本:标识IP首部的版本号。IPv4即为4。
首部长度:4比特构成,表明IP首部的大小。对于没有可选项的IP包,首部长度为5,也就是20字节。
区分服务:由8比特构成,表明服务质量。目前基本网络都忽略了这个字段。
总长度:表示头部+数据合起来的字节数,因为有16个字节,所以IP包的最大长度为2^16字节
标识:用于分片重组,同一个分片的标识值相同(并且目标地址、源地址和协议相同)。通常每发送一个IP包,他的值也是递增的。
标志:3比特构成
第0位:未使用,现在必须是0
第1位:指示是否可以分片(0可以分片1不可以分片)
第2位:在被分片的情况下是否为最后一个包(0是最后一个,1不是最后一个)
片偏移:13个比特。标识被分片的每一个分段相对原始数据的位置。因为分片是以8为单位分片的,所以最大可表示8*2^13=65536字节的位置。
生存时间:在实际中,每经过一个路由器就-1,值为0则丢弃。
协议:表示IP首部属于哪个协议。
首部校验和:只校验首部信息,确保数据包不被破坏。
源地址:32比特(4个字节)构成,表示发端IP地址。
目标地址:同源地址。
可选项:通常在实验或诊断时使用。包含安全级别、源路径、路径记录、时间戳。
填充:因为首选项的存在,数据包首部可能不为32比特的整数倍,通过向该字段填充0,调整首部为32比特的整数倍。
数据:存入数据。

IPv6报头

没写的就是和IPv4一样

1
2
3
4
5
6
通信量类:相当于IPv4的服务质量。
流标号:准备用于服务质量。
有效载荷长度:只包含数据的长度。
下一个首部:相当于IPv4的协议字段。
跳数限制:相当于IPv4的生存时间。
IPv6扩展首部:在对数据报进行分片时,需要使用扩展首部

DNS

可以有效管理主机名和IP地址之间的对应关系。

DNS解析器

进行DNS查询的主机和软件叫DNS解析器,一个解析器至少要注册一个以上域名服务器的IP地址。通常他至少包括组织内部的域名服务器的IP地址。

DNS查询

ARP

ARP地址解析协议

ICMP

1、通知出错原因的错误消息。

2、用于诊断的查询消息。

DHCP

实现了自动设置IP地址、统一管理IP地址分配。

MobileIP

当移动设备转移时,他的IP地址就会发生改变,这时候已经建立的TCP连接就会无法通信。在主机所连子网IP发生变化时,主机的IP地址仍能保持不变。

在移动之前按照以往的模式进行通信,移动后则通过外部代理发送转发数据包向归属代理通知自己的地址。实际上就是使用转交地址转发数据包的。

TCP

TCP详解

流量控制

在TCP首部中,专门有一个字段用来通知狂口大小,接受主机将自己可以接受的缓冲区大小放入这个字段中通知给发送端。这个字段的值越大,说明网络吞吐量越高。

UDP-Lite

和UDP几乎相同的功能,不过计算校验和的范围可以由应用自行决定。

SCTP

特点:

  • 以消息为单位收发
  • 支持多重宿主
  • 支持多数据流通信
  • 可以定义消息的生存期限

UDP首部

校验和:为了提供可靠的UDP首部和数据设计。通过在最后一位增加一个’0’将全长增加16倍。此时将UDP首部的校验和字段设置为’0’。然后以16比特为单位进行’1’的补码和,并将所得到的1的补码和写入校验和字段。

TCP首部

序列号:发送数据的位置。

确认应答号:指下一次应该收到的数据的序列号。

数据偏移:指传输的数据从本TCP包那个位置开始。

紧急指针:从数据部分的首位到紧急指针所指示的位置为止为紧急数据。