一、应用层
TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
FTP
Telnet
HTTP
二、传输层
TCP和UDP
报文格式
TCP报文头部:
- Source Port:源端口,标识哪个应用程序发送。长度为16比特。
- Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
- Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
- Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
- Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
- Reserved:保留,必须填0。长度为6比特。
- Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。
- Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
- Checksum:校验字段,是一个强制性的字段,由发送端计算和存储,并由收端进行验证。在计算验证和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
- Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
- Options:选项字段(可选),长度为0~40字节。
UDP报文头部:
- Source Port:源端口,标识哪个应用程序发送。长度为16比特。
- Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
- Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535字节(包括8字节的报头,和65527字节的数据)。
- Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特。
端口号
TCP三次握手
TCP连接建立的详细过程如下:
- 由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0;
- 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
- PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1.PC2收到之后,TCP双向连接建立。
TCP的序列号与确认序列号
假设PC1要给PC2发送一段数据,传输过程如下:
- 1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“a+1”,第二个字节的序号为“a+2”,依此类推。
- 2. PC1会吧每一段数据的第一个字节的编号作为序列号(Sequence number),然后将TCP报文发送出去。
- 3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号(a+1)+载荷长度=下一段数据的第一个字节的序号(a+1+12)
- 4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12”,说明“a+1”到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。
为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。
TCP的窗口滑动机制
- 1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。
- 2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
- 3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。
- 4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小(Window)。
- 5. 发送方根据接收方当前的Window大小发送对应数量的数据。
TCP的关闭 – 四次握手
TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接都必须关闭。如图所示:
- 1. 由PC1发出一个FIN字段置“1”的不带数据的TCP段;
- 2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
- 3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
- 4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。
三、网络层
网络层协议工作过程
当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点十分进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
IP数据包的封装与转发:
- 网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
- 中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”—-路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
- IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。
四、数据链路层
以太网与MAC地址
MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F
地址解析协议(ARP)
ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个TCP/IP协议。
ARP是IPv4中必不可少的一种协议,它的主要功能是:
- 将IP地址解析为MAC地址;
- 维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
- 实现网段内重复IP地址的检测。
ARP的工作原理(1)
- 网络设备一般都有一个ARP缓存(ARP Cache)。ARP缓存用来存放IP地址和MAC地址的关联信息。
- 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接 采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息, 则通过发送ARP Request报文来获得它。
- 学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内 (缺省:180s),设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进 行ARP查询。过了这段有效期,ARP表项会被自动删除。
- 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数据发送给网关。最后网关再把数据转发给目的设备。
ARP的工作原理(2)
- 主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的MAC地址。
- ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。此时,由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。
- ARP Request报文中包含发送端MAC地址、发送端IP地址、目的端MAC地址、目的端IP地址,其中目的端MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。
ARP的工作原理(3)
- 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。
ARP的工作原理(4)
- 主机2会向主机1回应ARP Reply报文。
- ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址,目的端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型被设置为Reply。
- ARP Reply报文通过单播传送。
ARP的工作原理(5)
- 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。 如果匹配,ARP报文中的发送端MAC地址和发送端IP地址会被记录到主机1的ARP缓存表中。
五、物理层
常见传输介质
双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
- STP-屏蔽双绞线
- UTP-非屏蔽双绞线
光纤传输,按照功能部件可分为:
- 光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。
- 光模块:将电信号与光信号互转的器件,产生光信号。
串口电缆在WAN(Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,
串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI
接口等。
无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出
去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据
传输。
评论