传输模型、TCP/IP和端口

1.传输模型

基本模型

每一个应用程序客户端要实现数据传输,都需要套接字去发送或者响应网络请求,客户端通过套接字,沿着网络设备将数据发送给其他客户端,相应客户端解析并接收数据。  

层次划分

各层说明 OSI七层网络模型 TCP/IP四层网络模型 对应协议
供操作系统或应用进行网络通信的标准接口 应用层 应用层 Telnet、FTP、SMTP、DNS、HTTP
将不同的编码方式转换成网络通信中采用的标准表现形式  表示层
不同PC不同进程间建立或解除连接,插入同步点 会话层
两个主机间端对端的数据连接与传输 传输层 传输层 TCP、UDP
选择路由并正确的找着目标主机 网络层 网络层 IP、ARP、RARP、ICMP
两个相邻节点间准确的数据传输 数据链路层 数据链路层 网络通信硬件及接口
原始比特数据在物理介质上的传输 物理层
  • OSI(Open System Interconnect)开放系统互连参考模型七层协议模型,是一个理想化的网络互连参考模型,但基本不使用,

       现使用的是TCP/IP四层网络模型

  • TCP和UDP的区别是前者是可靠的的网络互联协议,而后者不可靠
  • ARP指的是根据IP地址获取MAC(网络设备的物理地址,硬件地址,每台电脑中均装有网卡,其地址为MAC地址)
  • RARP为根据MAC地址获取IP地址

传输层说明

  •  Python是在应用层的HTTP协议之上进行开发
  • 网络编程,主要是了解Python能编写的最低的层次即传输层的基本情况
  • HTTP协议是基于TCP之上的,因此需要了解TCP连接的基本过程

2.TCP连接

       即建立连接(三次握手),数据传输和断开连接(四次挥手)

建立连接(三次握手)

  • 首先由客户端发起同步请求(SYN),即想建立连接,服务端处于监听状态,可接收客户端的请求。
  • 服务端收到同步请求,发送应答信号(ACK)给客户端。
  • 客户端接收应答信号,已建立连接并发送已建立连接的应答信号给服务端,连接建立完毕。

以上即为三次握手

数据传输

客户端发送数据传输请求,操作系统接受请求并接收数据,发送数据给相应客户端,客户端接收数据并发送响应信号,客户端接收。

断开连接(四次挥手)

  • 客户端主动请求断开连接,发送结束信号(FIN),客户端等待关闭
  • 服务端接收FIN信号,响应请求,发送ACK信号,第一阶段完成(客户端已无数据发送给服务端,但服务端可能还有数据发送给客户端, 故还有后续过程)
  • 服务端被动关闭,发送FIN信号,等待客户端确认
  • 客户端发送ACK,等待服务端关闭,服务端接收信号,关闭连接,客户端关闭连接

以上即为四次挥手

3.IP地址与端口

IP地址

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。即为每一台计算机编号,以便于在网络中定位到一台计算机的位置。                                                                                                     

127.0.0.1:回环地址。该地址指电脑本身,主要预留测试本机的TCP/IP协议是否正常。只要使用这个地址发送数据,则数据包不会出现                      在网络传输过程中。

0.0.0.1:代表的是本机所有ip地址,不管你有多少个网口,多少个ip,如果监听本机的0.0.0.0上的端口,就等于监听机器上的所有ip端                      口。换句话说,就是只要数据报目的地址是你机器上的一个ip地址,那么就能被接受。

IP地址分类

  • A类地址:网络号占1个字节。网络号的第一位固定为0。主机号占3字节。
  • B类地址:网络号占2个字节。网络号的前两位固定为10。主机号占2字节。
  • C类地址:网络号占3个字节。网络号的前三位固定位110。主机号占1字节。
  • D类地址:前四位是1110,用于多点广播(Multicasting),寻址一组计算机。组播地址占4字节。
  • E类地址:前四位是1111,保留为以后使用。

端口号

数据传输,发送与接收必须通过端口,指明了数据应发送的进程编号。每个进程都有一个端口号,以此来作为数据传输的门户。

数据传输的流程便是现寻找IP地址,后寻找端口号,进行数据传输。

猜你喜欢

转载自blog.csdn.net/weixin_42089175/article/details/81539633