根据个人理解以及书本知识进行总结,非常欢迎提出意见。
OSI七层协议
应用层:
开放系统互连环境的最高层,为操作系统或者网络应用提供网络服务的接口。
表示层:
数据加密和压缩,采用统一的标准编码将应用层的数据进行转换,从而使计算机之间能够相互通信。
会话层(会晤层):
组织和同步不同主机上各种进程间的通信,负责在两个会话层实体之间进行对话连接的建立和拆除,提供数据流中插入同步点机制,例如网络中断后,不必完全重新开始传数据,而是重传同步点后的数据。
传输层:
负责数据传送的最高层次。完成端到端的数据传输。
网络层:
负责选择合适的路由,使网络传输单元能够按照地址找到目的站。
数据链路层:
负责相邻节点间线路上传输以“帧”为单位的数据,每一帧包括一定的数据和控制信息,传输出错则重发该帧。
物理层:
为上一层的数据提供物理链接,传输比特流。
TCP协议:
TCP是一种面向连接的,可靠性高,基于字节流的传输层通信协议。
三次握手建立连接:
a)请求端发送一个SYN段指明客户打算连接的服务器端口,以及初始序ISN列号:eg.1415531521
b) 服务器发回包含服务器的初始序列号(1823083521)的SYN端报文段作为应答。meanwhile,将确认序列号设置为客户端ISN+1对客户端SYN报文段进行确认。
c)客户端必须将确认序号设置为服务器ISN+1对服务器的SYN报文段进行确认。
四次挥手断开连接:
a) 客户端将自己的socket关闭,内核协议栈向服务器发送一个FIN包,请求断开连接。
b)服务器收到请求后,内核协议栈会向客户端发送一个ACK包作为应答,表示已经收到请求。
c)服务器运行一段时间后,关闭自己的socket。内核协议栈会向客户端发送一个FIN包,请求断开连接。
d)客户端收到服务器的FIN包后,会发出一个ACK做出应答,表示已经收到服务器请求。
UDP协议
udp是一种面向无连接的传输层协议,提供面向事务的简单不可靠传送服务。
TCP与UDP区别:
1.TCP是面向连接的,UDP是无连接的。
2.TCP提供可靠的服务,数据无错误,不丢失,不重复,按顺序到达。UDP没有保证。
3.TCP面向字节流。UDP面向报文,UDP没有congestion control,适用于real-time transfer.
4.TCP连接是点对点的,UDP支持多对多通信。
5.TCP头部20字节,UDP头部8字节。