计算机网络协议

1、OSI网络协议/模型

国际标准化组织制定的网络七层协议理论参考模型,全称开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI)。该模型的目的是使各种硬件在相同的层次上相互通信。

1.1 物理层

通过各种物理介质(如网线、光纤)实现比特流传输。该层定义了物理设备标准,如网线、光纤接口标准、传输介质的传输速率等。

主要工作:传输比特流,也就是数模转换和模数转换(1、0转为强弱不同的电流传输到目的地之后转为对应的1,0数字)。实际通信中最终的信号传输就是物理层实现的。

协议:PDU(协议数据单元),由专门的串行信号模式组成。

1.2 数据链路层

作用:该层将0,1电信号分组成有特定意义的信号--数据帧以广播的形式通过物理介质传输数据,通过各种控制协议(差错控制、流量控制方法),将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路

数据链路层可以分为两个子层:MAC和LLC

  • MAC(媒体访问控制子层)主要进行数据出错校验、数据成帧,链路地址(MAC地址)访问介质实现数据传输
  • LLC(逻辑链路控制子层)定义一些字段使上次协议可以共享数据链路层(非必需)。

数据帧 :物理层比特流组合成字节,进一步组合成数据帧。

主要工作:接收物理层 的比特流 封装成帧,传到上一层;将来自上层的数据帧,拆成比特流转发到物理层。实现了同一网络的节点通信

协议:HDLC、PPP、SLIP。

1.3 网络层

找到目标通信计算机,并确定其中的节点路径,也就是路由,实现不同子网间的通信。

作用:通过路由选择算法,为报文(该层的数据单位,上层数据打包得到)通过通信子网选择最合适的路径。

协议:IP协议、ARP协议、路由协议、ICMP

主要任务:定义网络地址区分网段,不同子网的数据包路由,子网内MAC寻址。

1.3.1 IP协议

为了在不同子网通信时,能够识别和找到网络中的设备,为每一子网中的设备分配了一个唯一的地址——IP地址(逻辑地址),也叫网络地址,能够区分两台主机是否同属一个网络。该协议负责在主机和网络之间寻址和路由数据包

IPv4:32位,可用4个十进制数字表示。网络地址+局域网地址。

IPv6:64位。

ICMP协议网际控制消息协是IP层的附属协议,介于IP层和TCP层之间,一般认为属于IP层协议。IP协议用它来与其他主机或路由器交换错误报文和其他的一些网络情况,如发送消息,报告有关数据包的传送错误。

(下一篇详细介绍)

1.3.2 ARP协议

地址解析协议,实现由IP地址得到MAC地址

ARP先发起一个首部包含了目标主机IP的请求数据包,经数据链路层包装之后生成以太网数据包,然后广播发送给子网内所有主机,取出其中的IP地址与自己的IP地址??携带IP地址??比较,相同则返回自己的MAC地址,不同则丢弃该数据包。

1.3.3 路由协议

MAC寻址和ARP协议仍只能在同一子网内。因此引入路由协议实现不同子网寻址。

首先通过IP协议判断通信的主机是否处于同一子网:

  • 在同一子网,则通过ARP协议查询MAC地址,广播发送数据包给子网的主机;
  • 不在同一子网,以太网将数据包转发给所在子网的网关进行路由,经多次转发后匹配到目标子网,再进行上述ARP-MAC寻址过程

1.4 传输层

监控传输的数据是否完整,保证报文的正确传输。

数据链路层定义了主机的身份——MAC地址,网络层定义了IP地址标识主机的网段,但是数据传输时,数据包发个哪个应用程序接受呢?

因此该层引入UDP协议标识应用程序的身份——端口,为同一个主机的每个应用程序指定了唯一的端口号,数据包需要加上端口信息。UDP协议没有确认机制,发送发不知道是否丢包,是不可靠的,常用于发送少量数据。

TCP(传输控制)协议面向连接的、可靠的、基于字节流的通信协议,需要确认数据包是否到达接收方,如果丢包,就告知发送方丢失哪些包,发送方再发一次,直至全部接收,可用于发送大量数据。TCP协议在收发数据之前,需要发送方和接收方之间三次握手”确认,保证可靠传输。

作用:建立了主机端到端的连接,tcp保证数据传输的可靠性。

协议:UDP和TCP等。

1.5 会话层

负责建立、管理和终止表示层实体(应用程序)之间的通信会话。

向两个实体的表示层提供建立和使用连接的方法。

1.6 表示层

负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。

数据压缩和加密也是表示层可提供的转换功能之一。

1.7 应用层

定义各种协议规范数据格式,如 HTTP,HTTPS,FTP,POP3、SMTP等。

是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务。

总结通俗记忆方法

应用层 人做好信息,往下发
表示层 翻译一下
会话层 打包
传输层 把包发给下层
网络层 报文:给包贴个ip地址的标签
数据链路层 帧:查表ip转mac,然后转成电信号
物理层 定义好各种信号的意思,线路和插口的格式,开始发送

2、TCP/IP协议簇

2.1 TCP/IP简介

互联网中的计算机通过一系列协议实现通信,TCP/IP就是这些协议的集合(族)Transmission Control Protocol / Internet Protocol(传输控制协议/互联网络协议),包括TCP协议、IP协议、HTTP协议等。核心功能是寻址和路由选择和传输控制

是Internet的基础,也是当今最流行的组网形式。可以看作是OSI 七层模型简化而来的四层模型,包括网络接口层、网络层、传输层、应用层。每一层对上一层是透明的,上层只需要使用下层提供好的接口。每一层都呼叫它的下一层所提供的网络来完成自己的需求。

3.1 网络接口层

提供数据结构和实际物理硬件之间的接口,定义了数据在网络介质上传输的协议。

功能:

链路管理:通信开始前建立数据链路连接,通信中维护数据链路连接,通信结束后释放连接。

流量控制:防止发送的数据超过物理线路的传输能力或接收端的帧接收能力,防止链路阻塞

差错控制:有差错的物理线路转换为可靠的无差错数据链路,保证传输的可靠性。

802.1-互联网络:定义了802系列中互联网络如何工作。

802.2-逻辑链路/媒体访问控制:设备之间建立逻辑链路和媒体接口访问的描述。

802.11-Wi-Fi:无线数据包无线组网标准。

SLIP协议提供在串行通信线路上封装IP分组的简单方法。是一种简单的组帧方式。缺点是不支持在连接过程中的动态IP地址分配,通信前必须知道IP地址;SLIP帧不提供数据校验字段,需要上层实体或具有纠错能力的MODEM解决传输差错问题。

PPP协议:以太网上的PPP是一种串行线路协议,常见的变体为PPPoE。有效的点对点通信协议,由串行通信线路上的组帧方式链路控制协议LCP(用于建立、配置、测试和拆除数据链路)和网络控制协议NCPs(用于支持不同网络层协议)三部分组成。

LCP协议提供了通信双方进行参数协商的手段;NCPs协议使得PPP可以支持多种网络层协议,如IP,IPX,OSI等;支持IP的NPCs提供了建立链接时动态分配IP地址的功能,解决了个人PC上INTERNET网的问题。

3.2 网络层

处理在网络上流动的数据包。负责相邻计算机之间的通信,其功能包括:

  1. 处理来自传输层的分组发送请求,接收请求后,将数据装入IP数据报,填充报头,选择发送到目标机的路径,然后将数据发送到适当网络接口。
  2. 处理输入数据报:检查合法性,然后寻找路径:若找到目标机,则去掉包头,剩下的部分交给适当的传输协议;假如该数据报尚未到达目标机,则转发该数据报。
  3. 处理路径、流量控制、拥塞控制等。

重要协议:

IP(Internet Protocol, 网际互连协议):将多个网络连成一个互联网,将高层数据以数据包形势从发送方路由传输到接收方。各个IP数据包之间是相互独立的。提供的是不可靠的无连接的报文分组传送服务。

ICMP(Internet Control Message Protocol, 网间控制报文协议):处理基于IP路由和网络行为的消息,提供网络诊断信息。分组接收方利用ICMP通知发送方发生了故障,进行修改。通常当某一个模块发现报文有问题时会产生(触发??)ICMP,如目的主机或中继路由器。如果一个分组不能传送,ICMP则可以用于警告分组源,有网络、主机或端口不可达。ICMP还可以报告网络阻塞。

ARP(Address Resolution Protocol, 地址解析协议):TCP/IP网络环境下,每个主机都分配了一个32位的IP地址(逻辑地址,唯一标识互联网中的一台主机),该协议就是将这种逻辑地址换为相应的物理地址(MAC地址),使得报文可以在物理网上传送。

RARP(反向地址解析协议):将MAC地址转换成数字IP地址。

BOOTP(Bootstrap Protocol, 引导协议):是动态主机配置协议(DHCP)的前导协议,用于无盘工作站的LAN中,允许无盘工作站从中央服务器获取IP地址,支持网络设备从网络上获取引导和配置数据。

RIP(Routing Information Protocol, 路由信息协议):分布式的基于距离矢量算法的路由协议,负责数据的分片、寻址和路由。开销较小,但是限制了网络的规模,能使用的最大距离为15(16表示不可达),对于规模较大的网络应当使用OSPF协议

BGP(边界网关协议):运行于TCP之上的一种自治系统的路由协议,是唯一一个用来处理像因特网一样大小的网络的协议,也是唯一能够妥善处理好不相关间的多路连接的协议。

3.3 传输层

也称为主机到主机层,实现分布式进程之间的通信,在源主机的应用进程与目的主机的应用进程建立“端到端”连接。

TCP协议(Transmission Control Protocol,传输控制协议):提供可靠的数据流传输服务。采用“带重传的肯定确认”技术实现传输的可靠性,“滑动窗口”流量控制机制提高网络吞吐量。在发送方和接收方传数据之前,先通过“三次握手”机制建立数据传输链路,然后正式传输数据。但是增加了建立链接和解除链接的开销。(比如时间?)

UDP协议(Use Datagram Protocol,用户数据报协议):对IP协议组的扩充,发送方可以区分一台计算机上的多个接收者。UDP报文包含数据、目的端口号、源端口编号,从而可以发送给相应的进程接收,接收方发出应答OICQ软件正是基于UDP协议和这种机制

TCP vs UDP

TCP:

  • 面向连接的协议。数据传输之前都要建立连接(三次挥手),数据传输结束都要释放连接(四次挥手)
  • 一条TCP连接只能有两个端点,端点是socket(结构 IP地址:端口号),并非主机或进程。
  • 可靠交付
    •  等待协议连续ARQ 协议+滑动窗口协议
  • 全双工通信(一端既可以做发送方也可以做接收方)
  • 面向字节流

UDP:

  • 无连接,传输数据时不需要建立连接,减小开销
  • 尽最大努力交付,不确保可靠交付
  • 面向报文
  • 没有拥塞控制、确保信息实时性
  • 支持一对一,一对多,多对一,多对多
  • 首部开销小,只有8个字节

4.4、应用层

为用户提供所需要的各种服务,如:HTTP、TFTP、FTP、NFS、SMTP等。应用层是协议栈与主机上应用程序或进程接口的地方,也被称为处理层。

TCP/IP服务的运行依赖于:

  1. 守护程序(侦听进程):处理特定服务的入栈用户请求
  2. 端口地址:用于识别特定的进程和服务。端口地址使用16位数表示(2的16次方,也就是说一个主机最多有65535个端口)。在范围0-1024之间的端口地址经常被称为公认端口地址。如:FTP的公认端口为21

常见的协议:

HTTP(超文本传输协议)最基本的客户机/服务器的访问协议;

TFTP(简单文本传送协议):用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。使用UDP,不支持交互。一个TFTP包数据包括:本地媒介头,IP头,数据报头,TFTP头,TFTP数据。使用UDP中的源和目标端口以及包长度域,在IP头中不指定任何数据。

FTP(文件传输协议):网络上进行文件传输的一套标准协议,使用客户/服务器模式(客户FTP和服务器FTP。客户FTP启动传送过程,服务器FTP对其作出应答。FTP标准命令TCP端口号为21Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。工作时建立两条TCP链接——传送文件和传送控制

SMTP简单邮件传送协议:Client/Server模式,面向连接 ,可靠、有效地数据传输。基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件。

图片参考:(121条消息) 史上最全的TCP/IP协议原理_穆瑾轩的博客-CSDN博客

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值