HCIA-03

本文详细解释了OSI七层模型各层的功能,重点介绍了TCP/IP协议簇,包括TCP/IP模型的四/五层划分、协议数据单元(PDU)、TCP和UDP的差异、三次和四次握手过程,以及TCP的可靠性保障机制。同时涵盖了IP分片与分段的概念及其在网络层和传输层的作用。
摘要由CSDN通过智能技术生成

1.OSI七层参考模型(Open Systems Interconnection)
应用层:人机交互的接口,提供各种应用,将抽象语言转换为编码
表示层:编码转二进制,负责对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用层识别。
会话层:网络应用和网络服务器之间保持会话连接
传输层:端到端的传输,应用到应用之间的传输,端口号为1~65535,其中1~1023为知名端口号,用于标识已知服务
常见的协议端口:HTTP——超文本传输协议,用于获取网页:80
                             HTTPS——HPPT+SSL(安全套接层):443
                             FTP——文本传输协议:20,21
                             DHCP——动态主机配置协议:67,68
                             Telnet——远程控制协议:23
                             DNS——域名解析协议:53
网络层:基于IP地址进行逻辑寻址,负责将分组从源端传输到目的端,可能经过多个网络
数据链路层:二进制转换成电信号
物理层:负责传输原始的比特流,处理电信号

2.TCP/IP协议簇
TCP/IP模型:实现不同网络间的信息传输

TCP/IP标准模型分为4层,分别是网络接入层,网际层,传输层,应用层
TCP/IP对等模型分为5层,分别是物理层,数据链路层,网络层,传输层,应用层
TCP/IP模型为网络通信提供了一个结构化、层次化的框架,使得不同系统、不同网络之间能够进行高效、可靠的数据传输。此外,TCP/IP模型还包含了诸如建立连接(如TCP的三次握手)和断开连接(如TCP的四次挥手)等机制,以确保数据传输的完整性和安全性

3.PDU(Protocol Data Unit)协议数据单元,指的是在计算机网络中,不同层次协议之间进行信息传递时的数据单元。

在OSI中,包括L1PDU,L2PDU,L3PDU,L4PDU,L5PDU,L6PDU,L7PDU
在TCP/IP中,应用层——报文,传输层——数据段,网络层——数据包,数据链路层——数据帧。物理层——比特流

封装和解封装
(1)封装是指将应用层的数据逐层添加协议报头或报尾,从而转换为可以在网络中传输的格式。数据完成应用层到物理层的封装之后,就形成了一个可以在网络上传输的PDU。
(2)解封装则是接收端将接收到的PDU逐层去除协议报头或报尾,还原为原始数据的过程。
封装的协议:
应用层:取决于具体的应用协议
传输层:需要源端口,目标端口——TCP,UDP
网络层:需要源IP,目标IP——IP
数据链路层:需要源MAC,目标MAC——以太网协议
物理层没有特定的协议

4.传输层协议:TCP,UDP
TCP与UDP的区别:
(1)TCP是面向连接的协议,UDP是无连接的协议
(2)TCP的传输是可靠的,UDP是不可靠的
(3)TCP可以进行流量控制,UDP不可以
(4)TCP可以进行分段,UDP不可以
(5)TCP耗费资源较大,速度较慢,UDP耗费资源小,速度快

其中,面向连接指的是在正式发送数据之前,先使用预定的协议,先建立点到点的连接。之后,再进行数据传输。其包括三个步骤:建立连接、使用连接和释放连接。通过这种方式,TCP协议确保了数据的可靠传输。

TCP和UDP的应用场景:TCP更适合应用在对效率要求较低,但是对可靠性要求较高的场景;UDP更适合应用在对可靠性要求较低,对效率要求较高的场景。

5.TCP建立连接的过程——三次握手

        客户端首先发送一个SYN包到服务器,每个数据包都要有一个序列号,假设seq为x,客户端等待服务器确认;服务端收到数据包后,需要进行确认,同时自己也发送一个SYN包假设seq为y,服务端期望客户端下一次发送的数据包是x+1,ack=x+1;客户端收到服务器的SYN+ACK包之后,再向服务端发送一个ACK包,因为服务端期望收到x+1的数据包,所以客户端发送sqp为x+1的数据包,客户端收到的数据包是seq为y,所以下次一期望收到的为y+1;之后,客户端和服务器进入数据传输阶段。

为什么不能两次或者四次?

因为网络传输不稳定,每一个数据包都有丢失的可能,假设第二次握手的SYN+ACK丢失了,服务端会认为连接已经建立,但是客户端仍在等待服务端的ACK包,认为连接没有成功,就会忽略服务端发出的所有数据包。服务端发出的包超时后,会重复发送同样的分组,形成了死锁。

TCP断开连接的过程——四次挥手

 TCP的包头

 

  1. 源端口号目的端口号:这两个字段均为16位,分别标识主机上发起传送的应用程序和主机上传送要到达的应用程序。它们与IP首部中的源端IP地址和目的端IP地址一起,唯一确定一个TCP连接。
  2. 序列号:用于标识发送端发送的每一个字节以及接收端期望接收的下一个字节。通过序列号,TCP能够确保数据的顺序性和完整性。
  3. 确认号:表示接收端期望从发送端接收的下一个字节的序列号。这有助于发送端了解哪些数据已被成功接收,从而进行拥塞控制和流量控制。
  4. 数据偏移量:表示TCP包头长度,以4字节为单位。这有助于接收端正确解析包头和数据部分。
  5. 保留字段:用于扩展TCP/IP协议栈的功能,为未来可能的协议或功能更新预留空间。
  6. 标志位:包含多个控制位,如SYN(同步)、ACK(确认)、FIN(结束)等,用于建立和关闭连接、确认数据接收等操作。
  7. 窗口大小:表示接收端缓冲区的大小,用于实现TCP的流量控制。
  8. 校验和:用于检测数据包在传输过程中是否发生错误。
  9. 紧急指针:当URG标志位被设置时,该字段表示紧急数据的末尾在TCP数据部分中的偏移

TCP的可靠性:确认,重传,排序,流量控制

6.网络层封装:

IP协议

IP的分片

4位版本号:指定IP协议的版本(IPv4/IPv6),对于IPv4来说,就是4
4位首部长度:表示IP报头的长度,以4字节为单位
8位服务类型:3位优先权字段(已弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。如对于ssh/telnet这样的应用程序,最小延时比较重要,而对于ftp这样的程序,最大吞吐量较为重要
16位总长度:IP报文(IP报头+有效载荷)的总长度,用于将各个IP报文进行分离
16位标识:唯一的标识主机发送的报文,如果数据在IP层进行了分片,那么每一个分片对应的id都是相同的
3位标志字段:第一位保留,表示暂时没有规定该字段的意义;第二位表示禁止分片,表示若报文长度超过MTU,IP模块就会丢弃该报文;第三位表示"更多分片",若报文没有进行分片,则该字段设置为0,若报文进行了分片,则除了最后一个分片报文设置为0以外,其余分片报文均设置为1
13位片偏移:分片相对于原始数据开始处的偏移,表示当前分片在原数据中的偏移位置,实际偏移的字节数是这个值×8得到的。因此分片的报文中除了最后一个报文,其他报文的长度必须是8的整数倍,否则报文就不连续了
16位首部检验和:使用CRC进行校验,来鉴别数据报的首部是否损坏,但不检验数据部分
32位源IP地址和32位目的IP地址:表示发送端和接收端所对应的IP地址
选项字段:不定长,最多40字节
8位生存时间TTL——数据包每经过路由器的一次转发,TTL值会减1,如果一个数据包的TTL值为0,则路由器将丢弃该数据包而不转发。 

分片与分段
MTU:最大传输单元——默认1500字节
MSS:最大段长度——1460字节

分段(Segmentation)主要在传输层(TCP层)进行。当发送端的应用程序要发送的数据量很大时,TCP层会将这些数据分割成较小的段(Segment),并为每个段添加TCP头部信息。这样做的好处是,可以将大数据流分割成多个小数据流进行传输,提高了网络传输的灵活性和效率。每个TCP段都包含了序列号,以确保接收端能够按照正确的顺序重组数据。

分片(Fragmentation)则主要在网络层(IP层)进行。当IP层接收到TCP层传来的数据段后,如果这些数据段加上IP头部后的总长度超过了网络的最大传输单元(MTU),IP层就会将这些数据段进一步分割成更小的片(Fragment)。每个IP片都包含了原始IP数据报的头部信息,以及一个片偏移量,用以指示该片在原始数据报中的位置。这样,接收端的IP层就能够根据这些信息将所有片重新组合成原始的数据报。

分段和分片的主要区别在于它们发生的层次和目的。分段主要在传输层进行,目的是将大数据流分割成较小的段,以便在网络中传输。而分片主要在网络层进行,目的是确保数据包能够适应不同的网络链路和MTU限制,从而顺利到达目的地。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值