谈谈我对TCP的认识

94 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

由于封控了,关于内核地址空间的资料不在家里,就晚点给大家分享这方面的内容,今年依然给大家分享网络相关度东西

TCP的特性:

  • TCP是面向连接的,通常我们所说的握手就是这个意思,双方握手,就相当于两人人认识了彼此,在进行数据传输之前,进行握手,这样就可以提示客户和服务器接下来有数据要传输了,让其做好准备,早先的时候,就有利用这个握手准备工作进行网络攻击的案例。
  • TCP具有拥塞控制机制,在数据传输的过程中,可能会出现网络拥塞,这个时候这种机制就起到作用了,该机制会抑制发送进程的(客户端和服务器两端根据情况都有可能被抑制).
  • TCP没有数据加密功能,大家可能听说过SSL,这个是和TCP不用概念的东西,SSL是secure sockets layer的缩写,比如我们有个应用程序需要发送数据时,就可以通过ssl进行加密,然后发送给TCP的套接字,把数据发送出去,在接收端接收到数据后,就把接收到的数据发送给SSL,然后进行解密,最后ssl使用对应的接口将解密后的数据发送给接收进程,后面我也会详细的讨论SSL
  • 可靠数据传输,这个可靠并不是说数据一定会被对方接收,就比如极端情况下,网络刚开始通着,然后突然间有人把网线拔了,这种情况下,即使你用TCP,数据也是传不过去的,其本质是数据的发送方在发送数据的时候,会启动一个定时器,当超过时间,发送方依然没有收到接收方的回复,就任务这个数据包丢失然后进行重传,就是这种重传机制,导致了可靠,这种机制需要TCP报文中的多个字段配合完成的,后面的文章中我会介绍TCP报文段结构,到时候再回过头来看可靠传输的具体实现细节