19.网络编程之网络基础概念

发布时间 2023-11-05 10:39:14作者: CodeMagicianT

19.网络编程之网络基础概念

学习目标

  • 了解OSI七层、TCP/IP四层模型结构

  • 了解常见网络协议格式

  • 掌握网络字节序和主机字节序之间的转换(大端法和小端法)

  • 说出TCP服务器端通信流程

  • 说出TCP客户端通信流程

  • 独立写出TCP服务器端代码

  • 独立写出TCP客户端代码

1.网络基础概念

1.1协议

概念: 协议事先约定好,大家共同遵守的一组规则, 如交通信号灯。从应用程序的角度看,协议可理解为数据传输和数据解释的规则;可以简单的理解为各个主机之间进行通信所使用的共同语言。

假设,A、B双方欲传输文件。规定:

第一次: 传输文件名,接收方接收到文件名,应答OK给传输方;

第二次: 发送文件的尺寸,接收方接收到该数据再次应答一个OK;

第三次: 传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。

这种在A和B之间被遵守的协议称之为原始协议,后来经过不断增加完善改进,最终形成了一个稳定的完整的传输协议,被广泛应用于各种文件传输,该协议逐渐就成了一个标准协议。

1.2分层模型

OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。

网络分层 OSI 7层模型:物数网传会表应

▶物理层---双绞线,光纤(传输介质),将模拟信号转换为数字信号

▶数据链路层---数据校验,定义了网络传输的基本单位-帧

▶网络层---定义网络,两台机器之间传输的路径选择点到点的传输

▶传输层---传输数据 TCP,UDP,端到端的传输

▶会话层---通过传输层建立数据传输的通道.

▶表示层---编解码,翻译工作。

▶应用层---为客户提供各种应用服务,email服务,ftp服务,ssh服务

OSI7层模型:
物数网传会表应
应用层: 主要就是应用程序,ftp ssh email http
表示层: 进行编解码和翻译工作
会话层: 建立会话和保持会话
传输层: 定义了端端端的传输,TCP UDP协议
网络层: 定义了点到点的传输,IP协议----路由器
数据链路层: 数据校验,定义了数据格式--帧,ARP协议 RARP协议
物理层: 通信介质-双绞线,光纤 调制解调器modemn(模数转换和数模转换)

1.3 数据通信过程

通信过程:其实就是发送端层层打包,接收方层层解包。

注意:这些操作不是用户自己做的,而是底层帮我们做好的。

数据通信过程:
在发送方是数据层层打包过程,在接收方是层层解包过程。

1.4 网络应用程序的设计模式

▶CS设计模式优缺点:

优点:

客户端在本机上可以保证性能,可以将数据缓存到本地,提高数据的传输效率,提高用户体验效果。

客户端和服务端程序都是由同一个开发团队开发,协议选择比较灵活。

缺点:

服务器和客户端都需要开发,工作量相对较大,调试困难,开发周期长;

从用户的角度看,需要将客户端安装到用户的主机上,对用户主机的安全构成威胁。

▶BS设计模式优缺点:

优点:

无需安装客户端, 可以使用标准的浏览器作为客户端;

只需要开发服务器,工作量相对较小;

由于采用标准的客户端,所以移植性好,不受平台限制。

相对安全,不用安装软件

缺点:

由于没有客户端,数据缓冲不尽人意,数据传输有限制,用户体验较差;

通信协议选择只能使用HTTP协议,协议选择不够灵活;

1.5 以太网帧格式

以太网帧格式就是包装在网络接口层(数据链路层)的协议

以ARP为例介绍以太网帧格式

目的端mac地址是通过发送端发送ARP广播,接收到该ARP数据的主机先判断是否是自己的IP,若是则应答一个ARP应答报文,并将mac地址填入应答报文中;若目的IP不是自己的主机IP,则直接丢弃该ARP请求报文。

详细讲解ARP协议

IP段格式

协议版本: ipv4,ipv6

16位总长度: 最大65536

8位生存时间ttl(网络连接下一跳的次数):为了防止网络阻塞

32位源ip地址,共个4字节!我们熟悉的ip都是点分十进制的,4字节,每字节对应一个点分位,最大为255 ,实际上就是整形数!

32位目的ip地址

8位协议:用来区分上层协议是TCP、UDP、ICMP还是IGMP协议。

16位首部校验和:只校验IP首部,数据的校验由更高层协议负责。

UDP数据报格式

通过IP地址来确定网络环境中的唯一的一台主机;

主机上使用端口号来区分不同的应用程序。

IP+端口唯一确定唯一一台主机上的一个应用程序。

TCP数据流格式:

稳定的, 安全的,可靠的

序号:TCP是安全可靠的,每个数据包都带有序号, 当数据包丢失的时候,需要重传,要使用序号进行重传。控制数据有序,丢包重传。

确认序号:使用确认序号可以知道对方是否已经收到了,通过确认序号可以知道哪个序号的数据需要重传。

16位窗口大小--滑动窗口(主要进行流量控制)

1.6网络名词术语解析(自行阅读扫盲)