TCP/IP
文章平均质量分 87
一个程序渣渣的小后院
这个作者很懒,什么都没留下…
展开
-
TCP/IP学习笔记(五)TCP的保活定时器
正常情况下,TCP连接的终止需要经历四次挥手阶段,体现在代码上就是某一端主动调用close函数关闭套接字,随后TCP向对端发送FIN位被置为1的报文段标志着连接的结束,同时对端响应应答报文段,并在随后的某一时刻同样调用close函数,发送FIN报文段,当确认完成后就标志着TCP连接正常终止。然而,考虑一种情况,在TCP连接建立成功后,客户端主机突然崩溃(断电,断网等),导致客户端的TCP还没来...原创 2018-02-26 16:12:04 · 560 阅读 · 0 评论 -
TCP/IP学习笔记(四)TCP超时重传及拥塞控制
TCP是可靠的传输层协议,但这并不意味着一端发送的数据一定可以到达另一端,因为传输过程中遇到的情况是不可控的,很有可能就有某些数据发生丢失,所以”可靠”其实并不可靠。不过毕竟现如今的网络设备还算完善,传输过程中由于硬件错误导致数据丢失的情况基本可以忽略,那么,数据丢失的原因就只能是:传输路径过于拥堵,导致某些路由器或链路缓冲区无法再容纳多余数据,那么对于新来的数据包就只能丢掉。为了解决这一...原创 2018-02-26 00:21:53 · 3265 阅读 · 0 评论 -
TCP/IP学习笔记(三)TCP流量控制以及滑动窗口
众所周知,TCP是有缓冲区的,比如接收缓冲区用于存放已经到达但是还没有被应用程序及时处理的数据。但是任何缓冲区都是有一定大小的,如果发送方发送数据过快,而接收方处理数据过慢,就会导致接收方的接收缓冲区数据量不断累积最终塞满缓冲区。随后如果再有数据到达就只有一个结果,数据被丢掉为了解决这一问题,TCP引入了流量控制功能,所谓流量控制,就是让发送方发送速率不要太快,要让接收方来得及处理。通过滑动窗...原创 2018-02-26 00:19:50 · 929 阅读 · 1 评论 -
TCP/IP学习笔记(二)TCP三次握手
TCP是一种面向连接的流传输协议,提供了对数据传输时的各种控制功能,比如当丢包时可以重新发送即使数据到达顺序错乱也可以保证数据的有序性由于TCP是面向连接的协议,所以必须在确定通信对端存在时才会发送数据,即三次握手。好比于A和B打电话,电话拨通后 A对B说:”你好,我是A,你能听见我说话吗”(第一次握手) B听到A的询问回答说:”你好,我能听见你说话,你能听...原创 2018-02-25 20:09:20 · 758 阅读 · 0 评论 -
TCP/IP学习笔记(一)分层模型概述
Reverse Bits原题链接Reverse Bits给定一个32位无符号整型数,将它的二进制逆序,返回结果从字符串的角度观察二进制逆序,只需要从两端开始两两交换即可。当然,完全可以不将二进制转为字符串,而是模拟字符串的逆序操作代码如下class Solution {public: uint32_t reverseBits(uint32_t n) { ...原创 2018-02-23 23:10:23 · 1554 阅读 · 0 评论 -
TCP/IP学习笔记(八)复位报文段
TCP报文首部中存在一个RST位,如果该位被置1则表示这是个复位报文段。当一个报文段从一端发往一个不存在或者处于异常状态的另一端时,就会以一个复位报文段应答发送端,告知发送端连接出现错误,应当被关闭有三种连接情况可能会产生复位报文段尝试连接到一个不存在的<ip,port>主动关闭的一方的套接字设置了SO_LINGER选项,并且超时时间为0另一端异常崩溃导致连接处于半关闭状...原创 2018-03-01 20:01:21 · 727 阅读 · 0 评论 -
TCP/IP学习笔记(七)四次挥手
前面说过,TCP是稳定可靠的传输层协议,稳定体现在需要先建立连接(三次握手)才可以进行通讯。但是当一方想要关闭连接时,如果它一走了之,另一端又怎么知道连接已经关闭了呢,这就会导致另一端仍然保持着维护连接所需要的一切资源而无法释放。所以TCP在关闭连接时也需要进行类似三次握手之类的流程,以通知双方关闭连接,释放资源。称为四次挥手四次挥手关闭一个TCP连接需要进行四次报文交互,任意...原创 2018-02-28 20:22:30 · 379 阅读 · 0 评论 -
TCP/IP学习笔记(六)Nagle算法
在TCP传输数据流中,存在两种类型的TCP报文段,一种包含成块数据(通常是满长度的,携带一个报文段最多容纳的字节数),另一种则包含交互数据(通常只有携带几个字节数据)。对于成块数据的报文段,TCP采用正常的流程发送即可,因为数据利用率很高。而对于交互数据的报文段,数据利用率就显得很低,在网络环境不好的情况下容易加重网络负担。所以TCP必须对交互数据单独处理 交互数据实际上就是字节数很少...原创 2018-02-27 18:54:54 · 8827 阅读 · 2 评论 -
TCP/IP学习笔记(九)TCP报文段首部格式
TCP为了实现稳定可靠的传输,自然是需要在发送数据时附带一些信息,对端接收到报文段后将用户数据分离开存放在接收缓冲区,然后根据附加信息决定接下来的行为。所以即使TCP是面向字节流的传输协议,但是传输的基本单元却是报文段。报文段由报文首部和数据组成,报文首部最小占20字节最多占60字节,固定的20字节包含各种连接信息,可扩展的40字节存放各种选项值源端口和目的端口各占2个字节...原创 2018-03-02 21:18:11 · 2851 阅读 · 0 评论