TCP/IP解读

TCP/IP:
狭义指TCP和IP两种协议。OSI七层模型中,TCP协议在传输层,IP协议在网络层。多数情况下,TCP/IP广义指与TCP或IP紧密相关的协议,即TCP/IP协议族,也称网际协议群,甚至因其为互联网开发而制定,可直接称互联网协议。

TCP/IP的单位:
七层的协议数据单位皆可称包,应用层专用单位为消息,网络层及以上专用单位为数据包,数据链路层专用单位为帧,TCP数据流专用单位为段,IP数据流专用单位为片。

数据在网络中传递:
数据到达以太网的过程中,从上层到底层包装各层的首部。在以太网进入目标的过程中,从底层到上层拆除各层的首部。即“包信封”与“拆信封”。包首部即邮寄目标的信息,数据即给邮寄目标的内容。上一层的包首部和数据会成为下一层的数据。

数据链路层有MAC地址,识别同一链路不同主机;网络层IP有IP地址,识别互联网中不同主机;传输层有程序地址,即端口,识别同一主机不同程序。

TCP慢、可开;UDP快、不可靠。
TCP提供顺序控制、重发控制、流量控制、拥塞控制。
TCP面向连接,确认通信端存在才会发送数据,从而可以控制流量浪费。

靠源IP地址、目标IP地址、源端口号、目标端口号、协议号识别一个通信。不同的传输层协议可以使用相同的端口号。TCP首部包括源端口号、目标端口号。IP首部包括源IP地址、目标IP地址、协议号。

三次握手:
客户端请求与服务端建立连接;
服务端给客户端的确认应答;
客户端给服务端的确认应答。

四次挥手:
一端通知另一端自己想关闭连接。
另一端通知那一端自己收到了关闭连接。可能有数据没有发送结束,会让那一端等一下。
另一端通知那一段自己已经没有数据发送,可以关闭连接了。
那一端给另一端的确认应答。

SYN(同步标志): 源于Synchronize Sequence Numbers,同步序列号。SYN=1,表示有连接请求发生或者有连接接收发生。
只有当A受到B发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不能与外部任何主机主动建立连接。

ACK(确认标志): 源于Acknowledgement,确认。ACK=1表示有请求确认发生或者有接收确认发生。

FIN(结束标志): 源于Finish,完成。

SYN、ACK、FIN为标志位,seq、ack为变量。
推荐TCP包头格式详解:https://blog.csdn.net/xiongping_/article/details/47746953

TCP连接建立后,数据分段传输,段的首部为序列号和数据长度。回复时靠确认应答,指示上一段传输成功;靠接收数据的首部序列号和数据长度得到新的序列号,指示下一段传输的起点。如果超时得不到确认应答和序列号就重发。如果段已经重复就舍弃。每一段的长度为最大报文段长度(MSS)。最理想的情况是,最大报文段长度正好是 IP 中不会被分片处理的最大数据长度。

TCP窗口控制:
多个段发送后进行确认应答。
窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。

在每次发包时都会计算往返时间及偏差时间。将这个往返时间和偏差时间相加,重发超时的时间就是比这个总和要稍大一点的值。在 BSD 的 Unix 以及 Windows 系统中,超时都以0.5秒为单位进行控制,因此重发超时都是0.5秒的整数倍。

最初其重发超时的默认值一般设置为6秒左右。数据被重发之后若还是收不到确认应答,则进行再次发送。此时,等待确认应答的时间将会以2倍、4倍的指数函数延长。

数据不会被无限重发。达到一定重发次数之后,如果仍没有任何确认应答返回,就会判断为网络或对端主机发生了异常,强制关闭连接。并且通知应用通信异常强行终止。

参考:https://blog.csdn.net/haoranhaoshi/article/details/94384209

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃峰顶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值