TCP/IP网络协议基础(一、二)TCP/IP简介&链路层

一、TCP/IP简介

TCP/IP是传输控制协议与网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP不是一个协议,而是一个协议族的统称,其中包括IP协议、ICMP协议、TCP协议、http、ftp、pop3等协议,网络中的计算机都采用这套协议族进行互联。

1.1 网络协议栈架构

在这里插入图片描述
TCP/IP被分为四层,各层承担的任务和工作方式以及封装上层数据的方式都不一样:
(1) 应用层:应用程序通过这一层访问网络;
(2) 传输层
(3) 网络层
(4) 网络接口层:是TCP/IP协议的基层,负责数据帧的发送与接收。

1.2 IP地址

网络上每一个节点都必须有一个独立的IP地址,通常使用的IP地址是一个32bit的数字,被.分成4组,例如:
255.255.255.255就是一个IP地址,有了IP地址,用户的计算机就可以发现并连接到互联网中的另外一台计算机。

1.3 域名

用12位数组组成的IP地址很难记忆,实际应用时,用户一般不需要记

住IP地址,互联网给每个IP地址起了一个别名,习惯上称作域名。
域名与计算机的IP地址相对应,并把这种对应关系存储在域名服务系统DNS中。这样用户只需要记住域名就可以与指定的计算机进行通信了。
常见的域名包括com、net、org三种顶级域名后缀,除此之外每个国家还有自己国家专属的域名后缀(中国cn)。
我们可以使用命令nslookup或者ping来查看与域名相对应的IP地址.

1.4 MAC地址

MAC地址,也称为物理地址、硬件地址,用来定义互联网中设备的位置。在TCP/IP层次模型中,网络层管理IP地址,链路层则负责MAC地址,因此每个网络位置会有一个专属于它的IP地址,而每个主机会有一个专属于它的MAC地址。

1.5 端口号

IP地址是用来发现和查找网络中的地址,但是不同程序如何互相通信需要端口号来识别。端口采用16比特的端口号标识,一个IP地址饿端口可以有2^16个(65536)。
服务器的默认程序一般都是通过人们所熟知的端口号来识别的,例如,对于每个TCP/IP实现来说,SMTP(简单邮件传输协议)服务器的TCP端口号都是25FTP(文件传输协议)服务器的TCP端口号是21TFTP(简单文件传输协议)服务器的UDP端口号都是69,任何TCP/IP实现所提供的服务都用众所周知的1-1023之间的端口号,这些人们所熟知的端口号由Internet端口号分配机构来管理。
常用协议对应端口号

协议 端口号
SSH 22
FTP 20、21
Telnet (Internet远程登录服务的标准协议) 23
SMTP 25
TFTP 69
HTTP 80
SNMP 161
Ping使用ICMP 无具体端口号

1.6 封装与分用

封装:当应用程序发送数据的时候,数据在协议层次当中自顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,这样的信息称之为协议数据单元(PDU),在分层协议系统里,在指定的协议层传送的数据单元,包含了该层的协议控制信息和用户信息,如下图所示:
在这里插入图片描述

  • 物理层(一层)PDU指数据位(Bit)
  • 数据链路层(二层)PDU指数据帧(Frame)
  • 网络层(三次)PDU指数据包(Packet)
  • 传输层(四层)PDU指数据段(Segment)
  • 第五层以上为数据(data)

分用:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程恰好相反。

1.7 RFC

RFC文档是所有以太网协议的正式标准,并在其官网上面公布,由IETF标准协会制定。大量的RFC并不是正式的标准,出版的目的只是为了提供信息。RFC的篇幅不一,从几页到几百页不等,每一种协议都用一个数字来标识,如RFC 3720是iSCSI协议的标准,数字越大意味着RFC的内容越新或者对应的协议(标准)出现较晚。
所有的RFC文档都能在网上找到,其官网为IETF,在网站上面可以通过分类以及搜索快速找到目标协议的RFC文档,用时再查~

二、链路层

网络层协议的数据单元是IP数据报,而数据链路层的工作就是把网络层交下来的IP数据报封装为帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交到网络层。为了达到这一目的,数据链路必须具备一系列相应的功能,主要有:

  • 将数据封装成帧(frame),帧时数据链路层的传送单位;
  • 控制帧的传输,包括处理传输差错,调节发生速率与接收方相匹配;
  • 在两个网络实体之间提供数据链路通路的建立、维持、释放的管理。
    数据帧的结构图:
    在这里插入图片描述

2.1 控制帧的传输

2.1.1 差错控制

通信系统必须具备发现差错的能力,并采取措施纠正,使差错控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。
反馈重发
接收方通过对差错编码(奇偶校验码或CRC码)的检查,可以判定一帧在传输过程中是否发生了差错。一旦发现差错,一般可以采用反馈重发的方法来纠正。这就要求接收方收完一帧后,向发送方反馈一个接收是否正确的信息,使发送方据此做出是否需要重新发送的决定。发送方仅收到接收方已正确接收的反馈信号才能认为该帧已经正确发送完毕,否则需要重发至正确为止。

计时器
如果某一帧发送出现问题,一直不能发送成功,为了避免传输过程停滞不前,通常引入计时器来限定接收方发回反馈消息的时间间隔。当发送方发送一帧的同时也启动计时器,若在限定时间间隔内未能收到接收方的反馈信息,即计时器超时,则可认为传出的帧已出错或丢失,就要重新发送。

序号
由于同一帧数据可能被重复发送多次,就可能引起接收方多次收到同一帧并将其递交给网络层的情况。为了防止这种情况,可以采用对发送的帧编号的方法,即赋予每帧一个序号,从而使接收方能够从该序号来区分是新发送来的帧还是重发的帧,以此来确定要不要将接收到的帧递交给网络层。

2.1.2 流量控制

由于收发双方各自使用的设备工作速率和缓冲存储空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,此时若不对发送方的发送速率做适当的限制,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。
由此可见,流量控制实际上是对发送方数据控制流量的控制,使其发送效率不超过接收方的速率,所以需要一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待接收到某种反馈信息后再继续发送,这就是流量控制

2.2 以太网

以太网是指DEC公司、Intel公司和Xerox公司在1982年联合公布的一个标准,这个标准里面使用了一种称作CSMA/CD的接入方法。而IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准。

2.3 SLIP 与PPP

2.3.1 SLIP协议

SLIP(Serial Line IP 串行线路IP)协议。它是一种对IP数据报进行封装的简单形式。SLIP协议规定的帧格式规则为:

  • IP数据报以一个称作END(0xc0)的特殊字符结束。同时为了防止数据报传输之前的线路噪音被误认为是数据报内容,在数据报开始处添加一个END字符;
  • 如果IP数据报中含有END字符,就连续传输0xdb0xdc来取代它。0xdb是SLIP的ESC字符,但它的值与ASCII码中的ESC(0x1b)不同;
    如果IP数据报中含有ESC字符,就连续传输0xdb0xdd来取代它。

在这里插入图片描述
SLIP的缺陷

  • 每一端必须知道对端的IP地址,没有办法把本端IP地址传递到对端;
  • 数据帧中无类型字段,当一条串行线路使用SLIP时则不能使用其他协议;
  • SLIP数据帧中无checksum,只能依靠上层协议来发现和纠正错误。

2.3.2 PPP协议

PPP(点对点协议)是为同等单元之间传输数据设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
点对点协议为在点对点连接上传输多协议数据包提供了一种标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。在TCP/IP协议集中它是一种用来同步调制连接的数据链路层协议。

PPP协议修改了SLIP协议中的缺陷,包括以下三个部分:

  • PPP封装IP数据报既支持数据为8位和无奇偶校验的异步模式,又支持面向比特的同步链接?;
  • 通过LCP(链路控制协议)允许双方进行协商;
  • 通过NCP(网络控制协议)允许双方在网络层进行协商;

PPP协议的字符规则与SLIP有所不同:

  • PPP帧以标志字符0x7e开始和结束,紧跟着是一个值为0xff的地址字节,然后是一个值为0x03的控制字节;
  • 由于标志字符是0x7e,当它出现在信息字段中时,需要连续传送0x7d0x5e来替代它;
  • 当在信息字段中遇到0x7d时,需要连续传送0x7d0x5d来替代它;
  • 默认情况下,如果字符的值小于0x20,需要连续传送0x7d0x21来替代它。

PPP与SLIP相比具有下列优点

  • PPP支持在单根串行线路上运行多种网络层协议;
  • 每一帧都有CRC校验;
  • 通信双方可以用NCP(网络控制协议)进行IP地址的动态协商;
  • 可以类似于CSLIP对TCP和IP首部进行压缩;
  • LCP(链路控制协议)可以对多个数据链路选项进行设置。

2.4 MTU

为了提供足够快的响应时间,以太网和IEEE802.3对数据长度都有限制,其最大值分别为1500字节和1492字节,链路层的这个特性称作MTU,即最大传输单元

当网络层传下来一个IP数据报,并且其长度比链路层的MTU大,那么网络层就需要对数据报进行分片,使每一片都小于MTU。

MTU分为接口MTU和路径MTU:

  • 接口MTU是指定的接口所允许发送的最大数据长度;
  • 路径MTU指两台通信主机路径中最小的MTU值。路径MTU是不对称的,它在两个方向上不一定一致。
发布了96 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Thera_qing/article/details/103666967