网络编程篇
1、计算机网络
计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。
1.1、网络协议
-
如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用TCP/IP协议。
-
TCP/IP协议泛指互联网协议,其中最重要的两个协议是TCP协议和IP协议。只有使用TCP/IP协议的计算机才能够联入互联网。
-
TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
-
TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议、ICMP 协议、TCP 协议、以及 http、ftp、pop3 协议等。网络中的计算机都采用这套协议族进行互联。
1.2、小结

-
计算机网络:由两台或更多计算机组成的网络;
-
互联网:连接网络的网络;
-
IP地址:计算机的网络接口(通常是网卡)在网络中的唯一标识;
-
网关:负责连接多个网络,并在多个网络之间转发数据的计算机,通常是路由器或交换机;
-
网络协议:互联网使用TCP/IP协议,它泛指互联网协议簇;
-
IP协议:一种分组交换传输协议;
-
TCP协议:一种面向连接,可靠传输的协议;
-
UDP协议:一种无连接,不可靠传输的协议。
2、TCP
2.1、名词解释
-
ACK:是TCP报头的控制位之一,对数据进行确认。确认由目的端发出, 用它来告诉发送端这个序列号之前的数据段都收到了。 比如确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性。
-
SYN:同步序列号,TCP建立连接时将这个位置1。
-
FIN:发送端完成发送任务位,当TCP完成数据传输需要断开时,,提出断开连接的一方将这位置1。
2.2、建立连接的三次握手
-
第一次握手:主机A通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。
-
第二次握手:主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用那个序列号作为起始数据段来回应我。
-
第三次握手:主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了,这样3次握手就完成了,主机A和主机B就可以传输数据了。
特点:没有应用层的数据 ,SYN这个标志位只有在TCP建立连接时才会被置1,握手完成后SYN标志位被置0。
2.3、断开连接的四次挥手
-
第一次挥手:当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求 ;
-
第二次挥手:主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;
-
第三次挥手:由B 端再提出反方向的关闭请求,将FIN置1 ;
-
第四次挥手:主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.。
3、UDP
-
不需要大量的数据结构,处理逻辑和包头字段。
-
它不会建立连接,但是会监听这个地方,谁都可以传给它数据,它也可以传给任何人数据,甚至可以同时传给多个人数据。
-
不会根据网络的情况进行拥塞控制,无论是否丢包,它该怎么发还是怎么发。
4、TCP和UDP的区别
-
TCP 是面向连接的,UDP 是面向无连接的。
-
UDP程序结构较简单。
-
TCP 是面向字节流的,UDP 是基于数据报的。
-
TCP 保证数据正确性,UDP 可能丢包。
-
TCP 保证数据顺序,UDP 不保证。
本文来自博客园,作者:是老胡啊,转载请注明原文链接:https://www.cnblogs.com/solar-9527/p/15906428.html

浙公网安备 33010602011771号