TCP/IP, UDP and Socket
Last renew: April 7, 2022 pm
注:本文仅为个人学习笔记,无任何版权。
本篇旨在解决如下三个问题:
- 什么是TCP/IP、UDP?
- Socket是什么?
- 如何使用上述的服务?
让我们开始吧!
1. 什么是TCP/IP、UDP?
TCP/IP(Transmission Control Protocol/ Internet Protocol)即传输控制协议/网间协议。是一个工业标准的protocol集,他是为广域网(WANs)设计的。
UDP(User Data Protocal,用户数据报协议)是与TCP相对应的协议。他是属于TCP/IP协议集中的一种。

TCP/IP协议族包括运输层、网络层、链路层。TCP与UDP都是运用在运输层上的协议。
2. Socket是什么?
在上图中,我们并未看到Socket的影子。
Socket究竟在网络服务中扮演了怎样的角色呢?
实际上Socket的位置应该在应用层与运输层之间。起到了一个将应用层传输给运输层的信息进行抽象的作用。
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,他是一组接口。在设计模式中,Socket其实就是一个门面模式,他可以将复杂的TCP/IP协议族隐藏在后面,提供给用户一个简单的接口信息。用户只需要让Socket去组织数据,以符合制定的协议。
3. 如何使用上述的服务?

先从服务器端讲起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(Listen),调用Accept阻塞,等待客户端链接。在这时候如果有客户端初始化了一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接受请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。