计算机网络基础知识总结-TCP
2017-12-17 15:43
751 查看
最近花时间把计算机网络的基础知识恶补了一把,打算做个总结整理
。今天这篇先记录下TCP的相关知识。
首先,TCP/IP的体系结构如下:
在TCP/IP的体系结构中,网络层使用IP协议,提供主机到主机的逻辑通信;运输层提供的是应用进程到应用进程的逻辑通信,运输层有两种不同的传输协议:
1. 面向连接的TCP
2. 无连接的UDP
一、UDP
UDP协议比较简单,只是在IP数据报服务的基础上增加了一点点功能,主要特点是:
1. UDP是无连接的,即发送数据之前不需要先建立连接。
2. 尽最大努力交付,即不保证数据可靠交付。
3. 面向报文,UDP对应用进程交下来的报文,既不合并,也不拆分,在添加首部后就向下交付给IP层。
4. 无拥塞控制。
5. 支持一对一、一对多、多对一、多对多通信。
UDP报文的首部格式有4个字段,每个字段占2个字节,总共8个字节:
二、TCP
TCP协议非常复杂,不同于UDP协议的不可靠交付,TCP协议提供可靠交付,数据可以无差错、不重复、不丢失。主要特点有:
1. TCP是面向连接的,即应用进程在TCP通信前,必须先建立TCP连接。在数据传送完毕后,必须释放已建立的TCP连接。
2. 一条TCP连接只能有两个端点,即只能一对一通信。TCP连接的端点叫做套接字(Socket),套接字由ip地址+端口号构成,
即: 套接字 socket = (ip地址 : 端口号)。
3. 可靠交付。TCP实现可靠传输的原理,是依靠确认重传机制、滑动窗口机制实现的,具体介绍参考《计算机网络 谢希仁编著》
4. 全双工通信。
5. 面向字节流。
TCP报文的首部,前20个字节是固定的,后面可以按需增加4n个字节(n为整数)。
各字段的意义:
1. 序号,TCP传送的是字节流,每个字节都按顺序编号,序号字段就是指 当前本报文段所包含的数据(一段字节流)的第一个字节的序号。
2. 确认号,是期望收到对方下一个报文段的第一个字节的序号,比如,B正确收到了A发送过来的一个报文段,其序号是101,数据长度是100字节(101~200),则B期望收到的下一个数据序号就是201,那么B在发送给A的确认报文段中,就把确认号置为201。
3. 数据偏移,首部的长度。
4. URG,=1表示首部紧急指针字段有效。
5. ACK,=1表示首部确认号字段有效。
6. PSH,推送操作。
7. RST,重置位,=1表示TCP连接出现严重差错(比如主机崩溃)。
8. SYN,同步位,在建立TCP连接时使用。当SYN=1,ACK=0时,表示这是一个连接请求报文段,若对方同意建立连接,则在响应报文段中使SYN=1,ACK=1。
9. FIN,终止位,在释放TCP连接时使用。当FIN=1,表示此报文段的发送方 数据已发送完毕,要求释放TCP连接。
10. 窗口,当前允许对方发送的数据量,这个值是动态变化的。
TCP连接的建立,这个过程称作三次握手:
TCP连接的释放,这个过程称作四次挥手:
关于连接的建立和释放过程,可以用wireshark抓取网络包实际感受下,相关教程可以参考:
http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html
关于TCP连接过程更详细的解释,可以参考下面这篇文章:
https://www.cnblogs.com/Jessy/p/3535612.html
。今天这篇先记录下TCP的相关知识。
首先,TCP/IP的体系结构如下:
在TCP/IP的体系结构中,网络层使用IP协议,提供主机到主机的逻辑通信;运输层提供的是应用进程到应用进程的逻辑通信,运输层有两种不同的传输协议:
1. 面向连接的TCP
2. 无连接的UDP
一、UDP
UDP协议比较简单,只是在IP数据报服务的基础上增加了一点点功能,主要特点是:
1. UDP是无连接的,即发送数据之前不需要先建立连接。
2. 尽最大努力交付,即不保证数据可靠交付。
3. 面向报文,UDP对应用进程交下来的报文,既不合并,也不拆分,在添加首部后就向下交付给IP层。
4. 无拥塞控制。
5. 支持一对一、一对多、多对一、多对多通信。
UDP报文的首部格式有4个字段,每个字段占2个字节,总共8个字节:
二、TCP
TCP协议非常复杂,不同于UDP协议的不可靠交付,TCP协议提供可靠交付,数据可以无差错、不重复、不丢失。主要特点有:
1. TCP是面向连接的,即应用进程在TCP通信前,必须先建立TCP连接。在数据传送完毕后,必须释放已建立的TCP连接。
2. 一条TCP连接只能有两个端点,即只能一对一通信。TCP连接的端点叫做套接字(Socket),套接字由ip地址+端口号构成,
即: 套接字 socket = (ip地址 : 端口号)。
3. 可靠交付。TCP实现可靠传输的原理,是依靠确认重传机制、滑动窗口机制实现的,具体介绍参考《计算机网络 谢希仁编著》
4. 全双工通信。
5. 面向字节流。
TCP报文的首部,前20个字节是固定的,后面可以按需增加4n个字节(n为整数)。
各字段的意义:
1. 序号,TCP传送的是字节流,每个字节都按顺序编号,序号字段就是指 当前本报文段所包含的数据(一段字节流)的第一个字节的序号。
2. 确认号,是期望收到对方下一个报文段的第一个字节的序号,比如,B正确收到了A发送过来的一个报文段,其序号是101,数据长度是100字节(101~200),则B期望收到的下一个数据序号就是201,那么B在发送给A的确认报文段中,就把确认号置为201。
3. 数据偏移,首部的长度。
4. URG,=1表示首部紧急指针字段有效。
5. ACK,=1表示首部确认号字段有效。
6. PSH,推送操作。
7. RST,重置位,=1表示TCP连接出现严重差错(比如主机崩溃)。
8. SYN,同步位,在建立TCP连接时使用。当SYN=1,ACK=0时,表示这是一个连接请求报文段,若对方同意建立连接,则在响应报文段中使SYN=1,ACK=1。
9. FIN,终止位,在释放TCP连接时使用。当FIN=1,表示此报文段的发送方 数据已发送完毕,要求释放TCP连接。
10. 窗口,当前允许对方发送的数据量,这个值是动态变化的。
TCP连接的建立,这个过程称作三次握手:
TCP连接的释放,这个过程称作四次挥手:
关于连接的建立和释放过程,可以用wireshark抓取网络包实际感受下,相关教程可以参考:
http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html
关于TCP连接过程更详细的解释,可以参考下面这篇文章:
https://www.cnblogs.com/Jessy/p/3535612.html
相关文章推荐
- [Network] 计算机网络基础知识总结
- 计算机网络:传输层(TCP/UDP) 应用层(HTTP) 知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识--TCP/IP协议、IP分组、TCP传输
- [Network] 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- [Network] 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络基础知识总结
- 计算机网络——计算机网络基础知识总结
- 计算机网络基础知识总结(转载)
- java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结
- [Network] 计算机网络基础知识总结
- 计算机网络基础知识总结