理解 TCP(三):连接的建立和释放

2017-03-02
阅读 3 分钟
3.2k
更好阅读体验:《理解 TCP 和 UDP》— By Gitbook TCP 的整个交流过程可以总结为:先建立连接,然后传输数据,最后释放链接。 三次握手,建立连接 TCP 连接建立要解决的首要问题就是:要使每一方能够确知对方的存在。 三次握手就像,在一个黑暗的森林,你知道前方十点钟方向好像有人。 你喊了一句:Hello?I'am JerryC,W...

理解 TCP(四):状态流转

2017-03-02
阅读 1 分钟
3.1k
更好阅读体验:《理解 TCP 和 UDP》— By Gitbook 无论客户端还是服务器,在双方 TCP 通讯的过程中,都会有着一个「状态」的概念,状态会随着 TCP 通讯的不同阶段而变化。 TCP 状态流转图 各种状态表示的意思 CLOSED:表示初始状态 LISTEN:表示服务器端的某个 socket 处于监听状态,可以接受连接 SYN_SENT:在服务端监听...

理解 TCP(五):可靠性交付的实现

2017-03-02
阅读 3 分钟
4.7k
TCP 是一种提供可靠性交付的协议。 也就是说,通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。 但是在网络中相连两端之间的介质,是复杂的,并不确保数据的可靠性交付,那么 TCP 是怎么样解决问题的? 这就需要了解 TCP 的几种技术:

理解 TCP (六):网络编程接口

2017-03-02
阅读 7 分钟
3.8k
我们已经知道网络中的进程是通过 socket 来通信的,那什么是 socket 呢? socket 起源于 UNIX,而 UNIX/Linux 基本哲学之一就是「一切皆文件」,都可以用「open → write/read → close」模式来操作。 socket 其实就是该模式的一个实现,socket 即是一种特殊的文件,一些 socket 函数就是对其进行的操作。

理解 TCP(二):报文结构

2017-03-02
阅读 3 分钟
11k
什么是报文? 例如一个 100kb 的 HTML 文档需要传送到另外一台计算机,并不会整个文档直接传送过去,可能会切割成几个部分,比如四个分别为 25kb 的数据段。 而每个数据段再加上一个 TCP 首部,就组成了 TCP 报文。 一共四个 TCP 报文,发送到另外一个端。 另外一端收到数据包,然后再剔除 TCP 首部,组装起来。 等到四...

理解 UDP

2017-03-02
阅读 3 分钟
10.4k
TCP 在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务,由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。

理解 TCP(一):端口

2017-03-02
阅读 2 分钟
4.4k
我们知道两个进程,在计算机内部进行通信,可以有管道、内存共享、信号量、消息队列等方法。 而两个进程如果需要进行通讯最基本的一个前提是能够唯一的标识一个进程,在本地进程通讯中我们可以使用 「PID(进程标识符)」 来唯一标识一个进程。 但 PID 只在本地唯一,如果把两个进程放到了不同的两台计算机,然后他们要通...