TCP/IP 背景和介绍

TCP/IP 被分为 4 层,每层承担的任务不一样,各层的协议的工作方式也不一样,每层封装上层数据的方式也不一样:

(1)应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;

(2)传输层:TCP 协议和 UDP 协议;

(3)网络层:IP 协议,ARP、RARP 协议,ICMP 协议等;

(4)网络接口层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。

封装:当应用程序发送数据的时候,数据在协议层次当中从顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,如下图所示,传输层传给网络层的数据单元称作 TCP 报文段(TCP segment) 或 UDP数据报(UDP datagram) 。网络层传给链路层的数据单元称作 IP 数据报(IP datagram)。链路层上的传输单元称作帧(Frame)。


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

链路层

简介

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

将数据封装为帧(frame),帧是数据链路层的传送单位;

控制帧的传输,包括处理传输差错,调节发送速率与接收方相匹配;

在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。

控制帧的传输

差错控制

  1. 反馈重发

接收方通过对差错编码(奇偶校验码或 CRC 码)的检查,可以判定一帧在传输过程中是否发生了差错。一旦发现差错,一般可以采用反馈重发的方法来纠正。这就要求接受方收完一帧后,向发送方反馈一个接收是否正确的信息,使发送方据此做出是否需要重新发送的决定。发送方仅当收到接收方已正确接收的反馈信号后才能认为该帧已经正确发送完毕,否则需要重发直至正确为止。

  1. 计时器

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

  1. 序号

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

流量控制

由于收发双方各自使用的设备工作速率和缓冲存储空间的差异,可能出现发送方的发送能力大于接收方接收能力的现象,此时若不对发送方的发送速率做适当的限制,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。

由此可见,流量控制实际上是对发送方数据流量的控制,使其发送速率不超过接收方的速率。所以需要一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后再继续发送。这就是流量控制。

以太网

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

这两个标准稍有不同,因此链路层数据帧的的封装格式也有所不同(数据帧中的地址为 MAC 地址):

IP网际协议

IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP
数据报格式传输。IP 协议提供的是 不可靠 、 无连接 的数据报传送服务。

不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务。当发生某种错误时,IP
协议会丢弃该数据报。传输的可靠性全由上层协议来提供。

无连接(connectionless):IP 协议对每个数据报的处理是相互独立的。这也说明, IP 数据报可以不按发送顺序接收。如果发送方向接收方发送了两个连续的数据报(先是 A,然后是 B),每个数据报可以选择不同的路线,因此 B 可能在A 到达之前先到达。

IP 数据报


如上图所示,普通的 IP 数据报的报头长度 20 字节(除非有选项字段),各个部分的作用:

版本号 :4 位,用于标明 IP 版本号,0100 表示 IPv4,0110 表示 IPv6。目前常见的是 IPv4。

首部长度 :4 位,表示 IP 报头长度,包括选项字段。

服务类型(TOS) :分别有:最小时延、最大吞吐量、最高可靠性、最小花费 4 种服务,如下图所示。4 个标识位只能有一个被置为 1 :

总长度 :16 位,报头长度加上数据部分长度,便是数据报的总长度。IP 数据报最长可达 65535 字节。

标识 :16 位,接收方根据分片中的标识字段相不相同来判断这些分片是不是同一个数据报的分片,从而进行分片的重组。通常每发送一份报文它的值就会加 1。

标志 :3 位,用于标识数据报是否分片。其中的第 2 位是不分段(DF)位。当 DF 位被设置为 1 时,则不对数据包进行分段处理;第 3 位是分段(MF)位,除了最后一个分段的 MF 位被设置为 0 外,其他的分段的 MF 位均设置为 1。

偏移 :13 位,在接收方进行数据报重组时用来标识分片的顺序。

生存时间(TTL) :8 位,用于设置数据报可以经过的最多的路由器个数。TTL 的初始值由源主机设置(通常为 32 或 64),每经过一个处理它的路由器,TTL 值减 1。如果一个数据报的 TTL 值被减至 0,它将被丢弃。

协议 :8 位,用来标识是哪个协议向 IP 传送数据。ICMP 为 1,IGMP 为 2,TCP 为 6,UDP 为 17,GRE 为 47,ESP 为 50。

首部校验和 :根据 IP 首部计算的校验和码。

源 IP 和目的 IP :数据报头还会包含该数据报的发送方 IP 和接收方 IP。

选项 :是数据报中的一个可变长、可选的信息,不常用,多用于安全、军事等领域。

IP 地址分类

为了便于寻址以及层次化构造网络,每个 IP 地址可被看作是分为两部分,即 网络号 和 主机号 。同一个区域的所有主机有相同的网络号(即 IP 地址的前半部分相同),区域内的每个主机(包括路由器)都有一个主机号与其对应。

IP 地址被分为 A,B,C,D,E 五类,其中 A 类给大型网络或政府机构等,B 类分配给中型网络、跨国企业等,C 类分配给小型网络,D 类用于多播,E 类用于实验,各类可容纳的地址数目不同。其中我们最常见的为 A,B,C 这三类。

IP 地址用 32 位二进制数字表示的时候,A,B,C 类 IP 的网络号长度分别为 8 位、16 位、24 位:

A 类地址

A 类地址网络号范围:1.0.0.0—127.0.0.0

A 类 IP 地址范围:1.0.0.0—127.255.255.255

A 类 IP 的私有地址范围:10.0.0.0—10.255.255.255
(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)

127.X.X.X 是保留地址,用做循环测试用的

因为主机号有 24 位,所以一个 A 类网络号可以容纳 2^24-2=16777214 个主机号

B 类地址

B 类地址网络号范围:128.0.0.0—191.255.0.0

B 类 IP 地址范围:128.0.0.0—191.255.255.255

B 类 IP 的私有地址范围:172.16.0.0—172.31.255.255

169.254.X.X 是保留地址;191.255.255.255 是广播地址

因为主机号有 16 位,所以一个 B 类网络号可以容纳 2^16-2=65534 个主机号

C 类地址

C 类地址网络号范围:192.0.0.0—223.255.255.0

C 类 IP 地址范围:192.0.0.0—223.255.255.255

C 类 IP 的私有地址范围:192.168.0.0—192.168.255.255

因为主机号有 8 位,所以一个 C 类网络号可以容纳 2^8-2=254 个主机号

TCP/IP协议 1 ----实验楼转相关推荐

  1. TCP/IP协议之应用层

    TCP/IP协议之应用层 一.基本概念 **** 应用层协议的实现,只需要写出能够运行在不同的端系统(服务器.手机.电脑等)和通过网络彼此通信的程序.因为网络核心设备(路由器.交换机等,不包括端系统设 ...

  2. TCP/IP协议简介(三) 之 网络层

    IP 网际协议 IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP.UDP.ICMP 及 IGMP 数据都以 IP 数据报格式传输.IP 协议提供的是 不可靠 . 无连接 ...

  3. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  4. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  5. ip设置 kali 重置_在 Windows 系统中如何重置 TCP/IP 协议堆栈修复网络连接问题

    Internet 在 TCP/IP 协议上工作,如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作,则您的 Internet 连接会出 ...

  6. TCP/IP 协议理解

    TCP/IP 协议(Transmission Control Protocol / internet Protocol),因特网互联协议,又名网络通讯协议.通俗而言:TCP负责发现传输的问题,一有问题 ...

  7. 网络协议OSI、TCP/IP协议、Socket套接字和第三方AsyncSock的使用等解析

    一.网络协议定义 1.OSI参考模型:全称(Open System Interconnection), 开放式系统互联参考模型.是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为七层,只要目的是为 ...

  8. Python 14.1 TCP/IP协议简介

    TCP/IP协议简介 虽然大家对现在的互联网很熟悉,但是计算机网络比互联网出现的早得多. 为了把全世界不同的计算机都连起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Inte ...

  9. TCP/IP协议分析

    一;前言 学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了.本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体 ...

  10. Linux内核网络栈1.2.13-有关tcp/ip协议的基础入门

    参考资料 <<linux内核网络栈源代码情景分析>> Linux内核网络栈的基础内容 主要分析tcp/ip相关的基本构成,概述了socket的系统调用进入内核的一个流程,并了解 ...

最新文章

  1. 本地应用 v-model
  2. CSS0 -- 静态、自适应、流式、响应式
  3. 第十七届全国大学生智能车竞赛航天智慧物流创意组-第二次线上技术培训
  4. 解决Sublime包管理package control 报错 There are no packages available for installation
  5. RabbitMQ从安装到使用
  6. 为什么要两次调用encodeURI来解决乱码问题
  7. [译] 每天一段 Spring 5 官方文档(5.1.4.RELEASE)—— Spring Framework Overview 06
  8. raid5需要几块硬盘_Raid5磁盘阵列数据恢复思路分析--附真实案例
  9. 有驾照不等于会开车,教你开车技巧27招
  10. debian php安装pdo扩展,在debian下为PHP5.0.3安装pdo模块
  11. python发送电子邮件
  12. atitit.bsh BeanShell 的动态脚本使用java
  13. 桌面无计算机 win10,win10雨木林风系统桌面无计算机图片的处理办法
  14. 使用内网服务器上线微信小程序总结
  15. 王道数据结构代码---第五章:二叉树(重要)
  16. 冬瓜哥对时间和空间的理解方式—时空参悟(上)
  17. 小米 13 系列新品发布会将延期举行;马斯克:和苹果的误解得到了解决;IntelliJ IDEA 2022.3 发布|极客头条
  18. matlab画某个变量的全球分布
  19. ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频
  20. 全连接神经网络、卷积神经网络

热门文章

  1. VTP(VLAN中继协议)简单介绍
  2. 达梦(DM)数据库常见问题详解
  3. 西安交大计算机考研分数线2020院线,西安交通大学2020年复试分数线
  4. c语言通过编译器编译转换为机器码,assembler - TechTarget数据中心
  5. 什么可以代替pencil?pencil代替品推荐
  6. java获取法定节假日
  7. 主要发达国家大数据政策比较研究
  8. 考研复试问题集锦——数据库
  9. Git:版本控制控制软件
  10. 常用技术网站2017-2018