[LINUX]数据传输的网络分层

  • ①应用层:[输出]应用数据,用户态的一个进程,处理发送、接受数据的逻辑,即Dserver的client或者server,通常是一个进程,端口号唯一绑定了这个用户态进程。传输的数据格式、大小完全由用户态自己定义,没有太多的要求(自定义结构体,当然,如果传输变长的数据,一般会有一个应用层数据头, 用来表示后面需要读取的数据长度,传输定长数据就不需要了)
  • ②传输层:[输出]TCP数据段,内核态:根据网络传输的大小MSS,将应用层数据进行“拆分”,Data进一步封装为一个个数据报文(如果TCP/IP协议,即加上TCP数据头,里面有序列号等一系列的信息),通常还会自动赋予一个时间戳信息:主要有一些端口信息
  • ③网络层:[输出]IP报文,加上IP头,IP是标志网络中的计算机的,所以IP头主要的内容就是一些计算机的信息;主要封装IP信息
  • ④链路层:[输出]以太网数据帧,进一步加上数据帧头(进一步泛华,即数据帧并不关心你是根据什么协议,传输什么数据):这一层也有自己的一些处理协议的:更加底层,封装一些主机的MAC信息
  • ⑤物理层:这个层不关心传输的具体内容,只负责调用网卡,传输字节流;

以上是发送流程,可以看出来,TCP/IP协议虽然是一个常用的协议,但是一个TCP/IP协议包,其实包含的额外信息非常多的,从性能角度看似乎并不是一个特别好的实现,不够简练,但是其分层结构设计确实也给网络传输协议栈的实现带来很多好处,尤其是理解起来,更加轻松一些;
接收流程就是反序,一般根据IP决定哪一台计算机接收,而根据端口号,决定哪一个进程进行接收。所以,我们传统说的TCP/IP协议,实际上是上面这些层的总称,TCP是传输层的协议名称,而IP是网络层的协议名称。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值