网络编程篇

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、建立连接的三次握手

  1. 第一次握手:主机A通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。

  2. 第二次握手:主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用那个序列号作为起始数据段来回应我。

  3. 第三次握手:主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了,这样3次握手就完成了,主机A和主机B就可以传输数据了。

特点:没有应用层的数据 ,SYN这个标志位只有在TCP建立连接时才会被置1,握手完成后SYN标志位被置0。

2.3、断开连接的四次挥手

  1. 第一次挥手:当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求 ;

  2. 第二次挥手:主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;

  3. 第三次挥手:由B 端再提出反方向的关闭请求,将FIN置1 ;

  4. 第四次挥手:主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.。

3、UDP

  • 不需要大量的数据结构,处理逻辑和包头字段。

  • 它不会建立连接,但是会监听这个地方,谁都可以传给它数据,它也可以传给任何人数据,甚至可以同时传给多个人数据。

  • 不会根据网络的情况进行拥塞控制,无论是否丢包,它该怎么发还是怎么发。

4、TCP和UDP的区别

  • TCP 是面向连接的,UDP 是面向无连接的。

  • UDP程序结构较简单。

  • TCP 是面向字节流的,UDP 是基于数据报的。

  • TCP 保证数据正确性,UDP 可能丢包。

  • TCP 保证数据顺序,UDP 不保证。

posted @ 2022-02-17 21:05  是老胡啊  阅读(34)  评论(0)    收藏  举报