TCP/IP, UDP and Socket

Last renew: April 7, 2022 pm

注:本文仅为个人学习笔记,无任何版权。

本篇旨在解决如下三个问题:

  1. 什么是TCP/IP、UDP?
  2. Socket是什么?
  3. 如何使用上述的服务?

让我们开始吧!

1. 什么是TCP/IP、UDP?

TCP/IP(Transmission Control Protocol/ Internet Protocol)即传输控制协议/网间协议。是一个工业标准的protocol集,他是为广域网(WANs)设计的。

UDP(User Data Protocal,用户数据报协议)是与TCP相对应的协议。他是属于TCP/IP协议集中的一种。

![截屏2022-03-26 11.04.16](TCP-IP-UDP-and-Socket/截屏2022-03-26 11.04.16.png)

TCP/IP协议族包括运输层、网络层、链路层。TCP与UDP都是运用在运输层上的协议。

2. Socket是什么?

在上图中,我们并未看到Socket的影子。

Socket究竟在网络服务中扮演了怎样的角色呢?

实际上Socket的位置应该在应用层与运输层之间。起到了一个将应用层传输给运输层的信息进行抽象的作用。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,他是一组接口。在设计模式中,Socket其实就是一个门面模式,他可以将复杂的TCP/IP协议族隐藏在后面,提供给用户一个简单的接口信息。用户只需要让Socket去组织数据,以符合制定的协议。

3. 如何使用上述的服务?

![截屏2022-03-26 11.09.35](TCP-IP-UDP-and-Socket/截屏2022-03-26 11.09.35.png)

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

原文连接