OSI协议栈基础

本文详细介绍了OSI模型的七层结构,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。重点讲解了传输层的TCP与UDP协议,包括TCP的连接建立与断开过程,以及TCP报文结构。此外,还深入探讨了网络层的IP地址分类和ARP协议的工作原理。通过对数据封装与解封装的图解,帮助读者更好地理解网络通信过程。
摘要由CSDN通过智能技术生成

OSI模型分为七层

OSI把网络按照层次分为七层,由下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

OSI
应用层 OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。
表示层 提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
会话层 负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
传输层 提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
网络层 提供逻辑地址,供路由器确定路径。
数据链路层 将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
物理层 在设备之间传输比特流,规定了电平、速度和电缆针脚。

数据封装与解封装图解

数据封装过程
在这里插入图片描述

解封装过程
在这里插入图片描述

传输层:TCP &UDP协议基本描述

TCP与UDP对比

传输控制协议(TCP) 用户数据报协议(UDP)
面向连接 无连接
可靠传输 尽力而为的传输
支持流控及窗口机制 无流控及窗口机制
HTTP、FTP等 TFTP、DNS、DHCP等

TCP报文:
在这里插入图片描述
源端口(Source Port):16bit, 表示报文发送方的端口号

目的端口(Destination port): 16bit,表示报文接收方的端口号

序列号(SN):32bit,标识了TCP报文中第一个byte在对应方向的传输中对应的字节序号。当SYN出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1,单位是byte。比如发送端发送的一个TCP包净荷(不包含TCP头)为12byte,SN为5,则发送端接着发送的下一个数据包的时候,SN应该设置为5+12=17。通过序列号,TCP接收端可以识别出重复接收到的TCP包,从而丢弃重复包,同时对于乱序数据包也可以依靠系列号进行重排序,进而对高层提供有序的数据流。另外SYN标志和FIN标志在逻辑上也占用一个byte,当SYN标志位有效的时候,该字段也称为ISN(initial sequence number)。

确认号(ACK):32bit,标识了报文发送端期望接收的字节序列。如果设置了ACK控制位,这个值表示一个准备接收的包的序列码,注意是准备接收的包,比如当前接收端接收到一个净荷为12byte的数据包,SN为5,则发送端可能会回复一个确认收到的数据包,如果这个数据包之前的数据也都已经收到了,这个数据包中的ACK Number则设置为12+5=17,表示17byte之前的数据都已经收到了。在举一个例子,如

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值