(网络编程笔记):协议基本概念

目录

协议

常见协议

分层模型

OSI7层模型

TCP四层模型

数据通信过程

网络应用程序的设计模式

以太网帧格式

IP段格式

UDP数据报格式

TCP数据流格式

协议

  • 概念: 协议事先约定好, 大家共同遵守的一组规则, 如交通信号灯.从应用程序的角度看, 协议可理解为数据传输和数据解释的规则;可以简单的理解为各个主机之间进行通信所使用的共同语言.
  • 假设,A、B双方欲传输文件。规定:
    • 第一次: 传输文件名,接收方接收到文件名,应答OK给传输方;
    • 第二次: 发送文件的尺寸,接收方接收到该数据再次应答一个OK;
    • 第三次: 传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。

  • 从A上传文件到服务器B,需要在A和B之间制定一个双方都认可的规则,这个规则就称为文件传输协议,该协议是ftp协议的一个初级版本,后经过不断的完善优化最终形成了一个完成的ftp协议。
  • 注意:协议和具体平台无关

常见协议

  • TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
  • HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
  • FTP文件传输协议(File Transfer Protocol)
  • IP协议是因特网互联协议(Internet Protocol)
  • ICMP协议是Internet控制报文协议(Internet Control Message Protocol)它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
  • IGMP协议是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
  • ARP协议是正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址。
  • RARP是反向地址转换协议,通过MAC地址确定IP地址。

分层模型

OSI7层模型

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

TCP四层模型

  • 应用层: 对应会话层,表示层和应用层
  • 传输层: 对应传输层
  • 网络层: 对应网络层
  • 网络接口层: 对应于物理层和数据链路层

数据通信过程

  • 在发送方是数据层层打包过程, 在接收方是层层解包过程
  • 注意: 这些操作不是用户自己做的, 而是底层帮我们做好的.

网络应用程序的设计模式

设计模式 优点 缺点
CS设计模式
  • 客户端在本机上可以保证性能, 可以将数据缓存到本地, 提高数据的传输效率, 提高用户体验效果.
  • 客户端和服务端程序都是由同一个开发团队开发, 协议选择比较灵活.
  • 服务器和客户端都需要开发,工作量相对较大, 调试困难, 开发周期长;
  • 从用户的角度看, 需要将客户端安装到用户的主机上, 对用户主机的安    全构成威胁.
BS设计模式
  • 无需安装客户端, 可以使用标准的浏览器作为客户端;
  • 只需要开发服务器,工作量相对较小;
  • 由于采用标准的客户端, 所以移植性好, 不受平台限制.
  • 相对安全,不用安装软件
  • 由于没有客户端, 数据缓冲不尽人意, 数据传输有限制, 用户体验较差;
  • 通信协议选择只能使用HTTP协议,协议选择不够灵活;

以太网帧格式

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

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

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

  • ARP协议: 通过对方的IP地址获取MAC地址

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协议:稳定的, 安全的, 可靠的
  • 序号: TCP是安全可靠的, 每个数据包都带有序号, 当数据包丢失的时候, 需要重传, 要使用序号进行重传. 控制数据有序, 丢包重传.
  • 确认序号: 使用确认序号可以知道对方是否已经收到了, 通过确认序号可以知道哪个序号的数据需要重传.
  • 16位窗口大小--滑动窗口(主要进行流量控制)

小结

  • IP协议:在网络层
  • TCP协议:面向连接的, 安全的,可靠的数据流传输协议.
  • UDP协议:面向无连接的, 不安全的,不可靠的数据报传输.

猜你喜欢

转载自blog.csdn.net/baidu_41388533/article/details/108941101
今日推荐