网安学习-TCP、UDP传输协议与OSI模型
好久没有更新博客了,最近比较忙于学校的事就没空抽出来更。(其实是懒)最近刚好在TryHackMe上自学网络安全,于是干脆当成云笔记发博客吧(
TCP协议(Transmission Control Protocol)
TCP协议是一种基于连接(Connect-based)的传输协议,也就是在发送数据之前需要客户端与服务端先建立连接。
优缺点
优点:数据完整性保障、两台设备间的同步以防止数据乱序和拥塞、高可靠性。
缺点:需要两台设备间的稳定连接且如果一小部份数据没被接收,整段数据需重新发送、传输速度受限于双方较慢的网速、因为要进行很多计算所以比UDP协议慢很多。
首部格式
1.源端口(Source Port) – 发送的端口
2.目标端口(Destination Port) – 接收的端口
3.源IP地址(Source IP) – 客户端的IP地址
4.目标IP地址(Destination IP) – 服务端IP地址
5.序列号(Sequence Number) – 可以大概理解成发送的第几个包,用于防丢包
6.确认序列号(Acknowledgment Number) – 下一次希望接受到的序列号(n+1)
7.校验和(Checksum) – 用于核对数据是否完整的一个校验值
8.选项(Flag) – 附加选项
TCP的连接

TCP协议通过发送一系列的消息进行连接,以下是一些常见的消息:
1.SYN(开始连接并同步)
2.SYN/ACK(服务端确认同步)
3.ACK(接受确认)
4.DATA(传输的数据)
5.FIN(常规方式结束连接)
6.RST(强制结束连接,例如在程序服务出现错误或服务器资源不足时)
TCP协议通过**三次握手(Three-way Handshake)**建立连接
1.如图,客户端先发送SYN消息提供初始序列号开始连接并同步。
2.服务端接受到客户端发送的同步消息,确实客户端初始序列号并发送服务端初始序列号进行同步,发送SYN/ACK消息。
3.客户端确认服务端初始序列号,发送ACK消息后开始传输数据(DATA)。
TCP协议通过**四次挥手(Four-way Termination)**结束连接
1.如图,客户端发送FIN消息请求关闭连接。
2.服务端接收到客户端发送的请求关闭连接消息,发送ACK消息确认接收。
3.服务端向客户端发送FIN消息请求关闭连接。
4.客户端最后确认关闭连接,发送ACK消息,连接关闭。
UDP协议(User Datagram Protocol)
UDP协议是一种无状态协议(Stateless Protocol),也就是说UDP协议不需要一个恒定的连接来传输数据。就不像TCP协议需要三次握手建立连接。这种特性使得UDP协议使得其适合传输流媒体数据(直播、语音通话)。
优缺点
优点:比TCP协议快、由用户程序(开发者)决定发送包的速度、不需要恒定连接。
缺点:不保证数据送达、不稳定连接会导致较差用户体验。
首部格式
1.TTL(跃点数) – 数据包在网络存活的“时间”,其实是在网络中的最大转发次数
2.源IP地址(Source IP) – 客户端的IP地址
3.目标IP地址(Destination IP) – 服务端IP地址
4.源端口(Source Port) – 发送的端口
5.目标端口(Destination Port) – 接收的端口
6.数据(DATA) – 传输的数据
UDP的传输
1.客户端向服务端发送请求
2-N.服务端向客户端传输数据
OSI模型(Open Systems Interconnection Model)
OSI模式是一个至关重要的网络模型,它描述了所有接入网络的设备发送、接收和处理数据的方式。

如图,OSI模型一共有7层。它们从上到下分别是:
7.应用层(Application) - DNS, WWW/HTTP, Telnet等协议
6.表示层(Presentation) - HTML, DOC, JPEG等展示数据的格式
5.会话层(Session) - 例如TCP会话建立
4.传输层(Transport) - TCP, UDP协议
3.网络层(Network) - IP, OSPF(Open Shortest Path First), RIP(Routing Information Protocol)
2.数据链路层(Data Link) - MAC地址
1.物理层(Physical) - 例如网线连接