美文网首页
计算机网络-TCP

计算机网络-TCP

作者: 南小夕 | 来源:发表于2020-01-19 21:56 被阅读0次

一、目录

网络知识结构

(最近复习了网络相关的知识,在这进行一次总结,后续会有更新。)

二、网络基础

OSI七层协议,从下往上
(1)物理层
(2)数据链路层
(3)网络层
(4)传输层
(5)会话层
(6)表示层
(7)应用层

三、TCP的三次握手

1、TCP的三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送SYN包(seq = x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN+RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

2、为什么需要三次握手才能建立起连接
为了初始化Sequence Number的初始值。

3、首次握手的隐患--SYN超时
(1)、问题起因分析:
a、Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认。
b、Server不断重试直至超时,Linux默认等待63秒才断开连接。(5次)
(2)针对SYN Flood的防护措施
a、SYN队列满后,通过tcp_syncookies参数回发SYN Cookie
b、若为正常连接则Client会回发SYN Cookie,直接建立连接

4、建立连接后,Client出现故障怎么办
保活机制
(1)向对方发送保活探测报文,如果未收到响应则继续发送
(2)尝试次数达到包活探测数仍未收到响应则中断连接

四、TCP的四次挥手

TCP采用四次挥手来释放连接:
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;
第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;
第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为序号+1,Server进入CLOSED状态,完成四次挥手;

五、TCP和UDP

1、UDP的特点
(1)面向非连接
传输数据之前源端和终端不建立连接,当它想传送时就简单的去抓取来自应用程序的数据,并尽可能快的把它扔到网络上,在发送端UDP传送数据的速度仅仅是受应用程序生成数据的速度,计算机的能力和传输带宽的限制,在接收端UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段。
(2)不维护连接状态,支持同时向多个客户端传输相同的消息
(3)数据包报头只有8个字节,额外开销较小
(TCP20个)
(4)吞吐量只受限于数据生成速率、传输速率以及机器性能
(5)尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表
(6)面向报文,不对应用程序提交的报文信息进行拆分或者合并
2、TCP和UDP的区别
(1)面向连接 VS 无连接
(2)可靠性
(3)有序性
(4)速度
(5)量级

六、TCP的滑窗

1、RTT和RTO
(1)RTT:发送一个数据包到收到对应的ACK,所花费的时间;
(2)RTO:(Retransmission timeout)重传时间间隔
TCP在发送一个数据包之后,会启动一个重传定时器,而RTO就是这个定时器的重传时间
2、TCP的滑动窗口
TCP使用滑动窗口做流量控制与乱序重排
(1)保证TCP的可靠性
(2)保证TCP的流控特性

七、总结

本文先复习了TCP的相关知识,有关HTTP和Socket的知识会在后面的文章继续复习。

相关文章

  • TCP连接的建立学习记录一

    关于tcp连接建立这一部分我参考了《计算机网络 自顶向下方法》,《图解TCP IP》,《计算机网络》,《TCP ...

  • Golang面试之TCP/IP协议

    引用 关于TCP/IP的面试题 计算机网络——OSI、TCP/IP协议族详解 计算机网络【七】:可靠传输的实现 T...

  • 2018-10-12 Day34 - Linux02

    计算机网络分层架构模型Internet --- TCP/IP协议族TCP --- Transfer Control...

  • 50本互联网java技术书—倾心整理「收藏」

    一.计算机网络系列: 1.《TCP/IP卷一》 2.《计算机网络:自顶向下》 3.《图解HTTP和图解TCP/IP...

  • TCP三次握手原理

    一、TCP协议TCP(Transmission Control Protoco)协议属于计算机网络体系中的运输层。...

  • TCP/IP 卷Ⅰ协议-绪论

    TCP/IP 概述 简介:本系列文章,主要对TCP/IP协议族进行概述,其实对于整个计算机网络来说,TCP/IP只...

  • 计算机基础知识——计算机网络

    2018.11.06 计算机网络(TCP/IP) (1) 建立TCP服务器的各个系统调用 建立一个TCP服务器需要...

  • 计算机网络

    OSI 七层模型 OSI七层网络模型TCP/IP四层概念模型 图解计算机网络 TCP/UDP TCP(Transm...

  • 计算机网络

    TCP 的那些事儿(上) TCP 的那些事儿(下) 计算机网络之面试常考 Carson_Ho总结

  • 《TCP/IP 详解》

    简介 TCP/IP已经是计算机网络的事实上的标准。在TCP/IP的著作中,Stevens的三卷《TCP/IP 详解...

网友评论

      本文标题:计算机网络-TCP

      本文链接:https://www.haomeiwen.com/subject/cihdzctx.html