TCP/IP网络协议总结

学习TCP-IP详解一段时间,还有不少疑惑,总结记录一番,说不定有新发现。

  • 总听人说5G网络下一部电影只需要几秒钟,疑惑的很

我们普遍网络使用以太网,通过光纤或者网线连接,其数据封装格式依据IEEE 802规范,属于链路层数据规范,基于RFC 894 定义以太网封装格式。

5G应该是在链路层有很大的改进,所以主干网需要扩容,可以理解我们家的网线或者网卡都要换一换。也可以理解,以前的乡村小道可能要扩容成高速公路,但是路上还是小汽车,而不是高铁。5G Wi-Fi 标准802.11ac。

ARP:地址解析协议,为I P地址到对应的硬件地址之间提供动态映射,MAC地址与IP对应关系。

链路层数据格式:

目标MAC地址(6字节)源MAC地址(6字节)类型(2字节)数据(46~1500字节)CRC(4字节)
  • TCP包是否有序

在数据传输过程中,数据包在链路层传输应该是无序的,只有达到传输层,TCP协议开始让数据包变成有序,否则无法把数据包拼装完整,更无法保证数据的可靠性。

  • 电脑和电脑如何联网的,或者手机如何发送消息的

涉及到一个专有名词:网际协议,我们口中的IP地址,有固定格式,最大长达65535字节的IP数据报,它相当于我们的身份标识,2个设备通信就需要路由器来牵线搭桥,中间可能通过N多个路由器才能到达对方所在的交换机,把信息发送给对方。路由器里存放都是一堆路由列表,可以通过cmd route 命令查看,通过路由列表可以看到本机到达目标地址走的那条路。

2台主机都在互联网上都有公网IP地址,通过路由器中路由列表很快就能找到对方,但是木有那么多公网IP地址,我们可能在一个私网中,向另外一个私网中的电脑发送信息,怎么办。还是路由器来帮忙,路由器会映射互联网端口 = 局域网电脑IP+端口,当有数据到达路由器通过接受数据的端口号转发给局域网电脑,NAT (Network Address Translators),网络地址转换

  • 断点续传原理

数据通过TCP/IP协议传输,如果中间某个设备传输数据量过小,就需要进行拆包发送数据。断点续传类似,HTTP实现断点续传可以指定传输某个字节范围的数据;个人实现断点续传,首先是分割文件,再实现部分传输。

  • TCP传输数据包过程

当数据包很小情况,在接收到数据时并不立即发送ACK;相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送,称为数据捎带ACK。

当数据很大,允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。使用 TCP的滑动窗口协议时,接收方不必确认每一个收到的分组。

当断网再重传过程,TCP包可以重新分组重传。因为TCP是使用字节序号而不是报文段序号来进行识别它所要发送的数据和进行确认。

  • TCP可靠的传输层

三次握手、四次挥手保证数据连接可靠性。

传输过程中,通过重传定时器保证数据完整性。数据和确认都有可能会丢失,TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。重传时间倍数遵循指数退避规则。

如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止:接收方等待接收数据(因为它已经向发送方通告了一个非0的窗口),而发送方在等待允许它继续发送数据的窗口更新。为防止这种死锁情况的发生,发送方使用一个坚持定时器(persisttimer)来周期性地向接收方查询,以便发现窗口是否已增大。这些从发送方发出的报文段称为窗口探查(window probe)。

保活(keepalive)定时器可检测到一个空闲连接的另一端何时崩溃或重启。

2MSL定时器测量一个连接处于TIME_WAIT状态的时间。

  • TCP在传输过程总序号递增的,是否出现相同序号

在高速连接时,序号会发生回绕,接收方将时间戳视为序列号的一个32 bit的扩展。PAWS算法不需要在发送方和接收方之间进行任何形式的时间同步。接收方所需要的就是时间戳的值应该单调递增,并且每个窗口至少增加1。

参考:

udp打洞技术

网络通信的整个流程 - cls超 - 博客园

TCP 的那些事儿(上)

IP地址分类、子网划分及子网掩码的作用

https://learn.lianglianglee.com/%E6%9E%81%E5%AE%A2%E6%97%B6%E9%97%B4/%E8%B6%A3%E8%B0%88%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE.md 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值