第一章概述

NII(National Information Infrastructure):国家信息基础设施

GII(Global Information Infrastructure):全球信息基础设施

WWW(World Wide Web):万维网

ISOC(Internet Society):因特网协会,因特网最高管理机构

IAB(Internet Architecture Lab):因特网体系结构委员会

1. 建立因特网标准

2. 管理RFC文档的发布

3. 建立因特网的策略性研究计划

IEFT(Internet Engineering Task Force):因特网工程任务组

1. 负责因特网标准的制定

2. 应用研究,通用研究,国际互联研究,操作与管理,实时应用与基础设施,路由研究,安全研究,传输研究。

IRTF(Internet Research Task Force):因特网研究任务组

1. 负责与因特网发展相关的长远的理论研究

2. 下设若干个研究小组

InterNIC(Internet Network information Center):因特网网络信息中心

CNNIC(China Internet Network Information Center):中国互联网络信息中心

ICANN(Internet Corporation for Assigned Names and Numbers):因特网名称与数字数字地址分配机构

W3C(World Wide Web Consortium):WWW协会

RFC(Request For Comments):请求注解

八种状态:

1.标准化轨迹的RFC:

a. 提案标准

b. 草案标准

c. 因特网标准

2.非标准化轨迹的RFC:

a. 实验性的RFC

b. 信息性的RFC

c. 历史性的RFC

3.其他状态的RFC:

a. 最佳当前实现的RFC

b. 未知性的RFC

第二章计算机网络与因特网体系结构

计算机网络的概念:利用通信介质和通信设备连接起来的,通过网络协议实现信息传递和资源共享的计算机的集合。

计算机网络的分类:

按照拓扑结构:

1. 总线型

2. 星型

3. 环型

4. 网状

按照覆盖范围:

1. 广域网 (Wide Area Network, WAN)

2. 城域网 (Metropolitan Area Network, MAN)

3. 局域网 (Local Area Network, LAN)

4. 个域网 (Personal Area Network, PAN)

网络协议(network protocol):通信双方事先约定好和通信时必须遵守的规则的集合。

三要素:

1. 语法:定义用户数据和控制信息的格式

2. 语义:解释控制信息每个部分的意义

3. 同步规则(时序):定义事件发生的详细顺序

网络体系结构分层的优点:

1. 有利于将复杂的问题分解成多个相对独立的简单问题,分而治之:越下面的层次越具体,越上面的层次越高级。上层调用下层功能。

2. 新技术的引入,不会对所有层次产生影响。

3. 网络互联时只需考虑底层某一个或几个异构的层次,而不是所有层次。

WLAN = Wi-Fi(Wireless LAN):无线局域网

WMAN = WiMAX(Wireless MAN):无线城域网

WiMAX的本义:Worldwide Interoperability for Microwave Access,无线城域网相关组织

Ad-hoc:自组织模式

网络互联的三个基本问题:协议转换,寻址,路径选择

TCP/IP网络体系结构

网络接口层:对应OSI模型的物理层和链路层,TCP/IP未对这层内容进行定义,支持和包容各种底层网络技术和标准。

网络层:实现主机到主机的IP分组的传递。具体功能包括路由选择,流量控制和拥塞控制。包含IP,ICMP,IGMP,ARP,RARP协议和一些路由选择协议等。

传输层:实现不同主机上的进程之间的数据通信服务。包含TCP和UDP协议。

应用层:为应用程序提供网络服务接口。包含大量的应用协议,例如HTTP,SMTP,FTP。

第三章 IP地址

IP = 网络号 + 主机号

长度

IPV4:32比特(四个字节)

IPV6:128比特

现大多是IPV4,32个比特,四个字节

IP地址的分类:

1. A类:0开头,第一个字节0~127,网络号占一个字节,单播,全0和全1不能分配,即0和 127不分配

2. B类:10开头,第一个字节128~191,网络号占两个字节,单播

3. C类:110开头,第一个字节192~223,网络号占三个字节,单播

4. D类:1110开头,第一个字节224~239,组播,只能用作目的地址,无法分配给主机

5. E类:11110开头,第一个字节240~255,保留地址,实验用,无法分配给主机

全0全1用作特殊用途,无法分配给主机

IP地址的本质:标识设备的网络接口

特殊IP地址:不能分配给设备的IP地址

1. 网络地址:主机号全0

作用:

a. 用于标识网络

b. 在设备的路由表中使用,用于减少路由表的长度

2. 直接广播地址:主机号全1

作用:

a. 向某个网络上的所有主机(包括计算机和路由器)发送信息

b. 只能作为分组的目的地址

3. 受限广播地址:32位比特全为1

作用:

a. 只能作为信息的目的地址

b. 表示该信息发往本网络上的所有主机(设备接口)

注意:

路由器将隔离受限广播信息,不向其他网络进行转发。

4. 本网络地址:网络号全为0,分为两种

4.1 本网络特定主机地址:网络号全为0,主机号不为0

作用:

a. 只能作为信息的目的地址

b. 表示信息发给本网络的指定主机(设备接口)

4.2 本网络本机地址:32比特全为0

作用:

a. 只能作为信息的源地址

b. 表示信息来自于本设备,但具体的地址未知

5. 环回地址:以127开头的IP地址

作用:

a. 只能作为信息的目的地址

b. 表示信息的接受者是本机,不会被网卡传到网络上去

c. 用于一个设备中客户机程序与服务器程序的通信测试

IP地址的配置原则:

1. 同一网络的IP地址应该具有相同的网络号

2. 网络号第一字节应该是1~223,但不能是127(环回地址)

3. 主机号不能为全0

4. 主机号不能为全1

5. 不能为特殊IP地址

6. 在本网络必须唯一

超网划分的规则:

1. 待合并的地址块必须是连续的

2. 待合并的地址块的数量必须是2^m个

3. 待合并的如果是C类地址块,则第一个地址的第三字节的值必须是地址块数量的整数倍

CIDR掩码:a.b.c.d /n (n为掩码中连续的1的个数)

第四章地址解析

网络层的两个协议:

1. 地址解析协议ARP(Address Resolution Protocol):IP地址到物理地址

2. 逆向地址解析协议RARP(Reverse ARP):物理地址到IP地址

ARP过程:

1. A广播ARP请求(请求B的物理地址,广播)

2. B单播应答(应答B的物理地址,单播)

ARP高速缓存:

作用:记录最近解析过的地址映射信息,减少开销。

实现:每一个表项设置一个超时值,超时就不再使用。、

静态表项:永不超时的地址映射表项。通常用于地址映射固定的设备,如服务器。

静态表项的改变:

1. 当收到的地址映射与高速缓存不一致时,修改,设置超时值,不再是静态表项。

2. 设备重启时丢失。(因为高速缓存在内存中)

3. 管理员可使用ARP程序删除静态表项。

RARP:RARP服务器应答与物理地址对应的IP地址

过程:

1. A广播RARP请求

2. RARP服务器应答对应的IP地址,单播方式返回

第五章 IP协议

5.1 IP数据报的格式(Wireshark)

TTL(Time To Live):生存时间(跳数)

5.2 IP数据报的传输

IP数据报的封装:使用网络底层的帧进行封装

无连接的数据报传输:

每个IP数据报携带源和目的地址,采用无连接的方式独立传输

每经过一个路由器:

1. 首部校验

2. 路由选择

3. 数据分片(在需要时)

首部校验:十六个比特的首部校验和字段,实现点到点的首部校验

分片:在信源机和路由器分片,但不超过下一网络的MTU(帧的最大传输单元)

重组:在信宿机重组

5.3 IP选项

位置:位于IP首部的尾端,可包含零到多个选项

长度:必须为四字节的整数倍,且不能超过四十字节

作用:用于网络控制和测试,如指定路由,记录路由,记录时间戳等

源路由选项:

作用:在信源机上人为指定数据报的传输路径

使用方法:

1. 严格源路由选项

2. 宽松源路由选项

严格源路由选项:

目的地址:指向下一跳地址

指针:永远指向下下一跳地址

宽松源路由选项

指定数据报经过的某些路由器

时间戳选项

5.4 IP模块的结构

第六章差错与控制报文协议

6.1 ICMP协议概述

ICMP:因特网控制报文协议

位置:位于网络层,IP协议之上,所以ICMP报文使用IP数据报进行封装。

作用:是IP协议的补充,用于IP传输时的差错报告,拥塞控制,路径控制以及时间,掩码等信息的获取。

6.2 ICMP报文格式与类型

6.3 ICMP差错报告报文

差错报告的特点:

1. 丢弃出错的IP数据报

2. 向信源机报告差错,不纠错,纠错留给高层协议

3. 报文的数据区包含出错数据报的首部及前64比特的数据,帮助信源机确定出错分组

4. 报文作为一般数据传输,不享受特别传输服务

差错报告的类型:

1. 信宿不可达:当路由器无法转发数据报,或新宿机无法向上层提交数据时,丢弃当前的IP数据报,并向信源发送ICMP信宿不可达报告。

2. 数据报超时:

a. TTL超时:若路由器发现某数据报TTL减为0,就丢弃此数据报,并向信源发送ICMP数据报超时报告。类型3

b. 分片重组超时:信宿机分片重组时会启动定时器,一旦定时器超时,就丢弃正在重组的数据报,并向信源发送ICMP数据报超时报告。类型11

3. 数据报参数错:路由器或信宿机发现IP首部的字段值有问题或空缺,就丢弃该数据报,并向信源发送ICMP数据报超时报告。类型12

6.4 ICMP控制报文

分类:

1. 源抑制报文:用于拥塞控制。类型4。

2. 重定向报文:用于路径控制。类型5。

重定向报文:用于主机路由表的更新,最终实现路径控制。

6.5 ICMP请求与应答报文

作用:获取信息:

1. 设备的可达性

2. 时间戳信息

3. 地址掩码信息

4. 默认路由器信息

时间戳信息:

往返时延 = (t当前 - t初始)- (t发送 - t接受)

假设请求和应答传输时延相同,单程时延 = 往返时延 / 2

两设备时间差 = t接受 -(t初始 + 单程时延)

结果为正数,表示应答方的时间比请求方快

6.6 ICMP报文的封装

使用IP数据报进行封装

第七章 IP路由

7.1 路由选择

直接传递和间接传递

IP数据报的传输过程:一个直接传递 + 零到多个间接传递

直接传递:在信宿网络中,直接传到信宿的过程。

间接传递:在非信宿网络中的传递过程

TCP/IP采用表驱动方式寻找从信源机去往信宿机的较好路径,即每台主机和路由器中都有一个路由表。

7.2 路由表

内容:信宿地址 + 去往信宿的路径

信宿地址一般采用信宿网络地址的好处:

1. 网络远少于主机,减少路由表

2. 与网络拓扑结构相对应。网络拓扑中,只有路由器和网络,没有主机。

3. 主机的增减不会对路由表产生影响

4. 减小使用和维护的开销,简化设备的设计和实现。

路由表:去往信宿的路径为下一跳设备,而不是完整路径,减少路由表规模。

路由表位于内存中,设备重启后需要重新建立。

路由表表项:

1. 普通路由表项

2. 特定主机路由表项

3. 默认路由表项

直接交付表项 > 特定主机路由表项 > 普通路由表项 > 默认路由表项

7.3 静态路由

即非自适应路由选择,特点是简单和开销较小,但不能及时适应网络状态的变化。

静态路由的不足:

1. 手工添加,工作量大容易出错。

2. 不能及时地反映网络的变化。

3. 用于不经常变动的小型网。

7.4 动态路由

即自适应路由选择,其特点是能较好适应网络状态的变化,但实现起来较为复杂,开销也比较大。

按照最短路优先原则,计算并刷新路由表。

路由协议算法的分类:

向量-距离算法(Vector-Distance, V-D算法)

优点:

1. 简单,易实现

缺点:

1. 收敛慢

2. 信息交换量大,不适合大的网络和频繁变化的网络

链路-状态算法(Link-Status, LS算法,记录最短路径生成树)

优点:

1. 收敛速度较快。

2. 信息交换量较小。

3. 扩展能力强,适合大型网络。

缺点:

1. 计算量大。

路由协议

因特网划分为自治系统AS(Autonomy System),每个AS由一个单位管理,并自主决定所用路由协议和控制策略。

1. 内部网关协议:运行于AS内部,包括

a. 路由信息协议RIP(Routing information Protocol):应用层协议,采用V-D算法。最大路径长度不能大于15。可用水平分割法,毒性逆转法,保持法解决慢收敛等问题。封装于UDP数据报中。

b. 开放最短路径优先OSPF(Open Shortest Path First):网络层协议,采用LS算法。AS内部被划分为区域(Area)。有一个主干区域0,其他区域连接到主干区域。这么做的好处是引入了层次的概念,减少了每一个路由器需要处理的信息量。用IP数据报封装。

2. 外部网关协议:运行于自治系统之间

a. 边界网关协议BGP(Border Gateway Protocol):应用层协议,封装于TCP。

第八章传输层协议

8.1 进程间通信

传输层:实现不同主机进程间的通信。

进程:计算机中并发执行的程序

端口:应用层与传输层之间的SAP(Service Access Point)

TCP(Transmission Control Protocol):传输控制协议

特点:基于无连接、不可靠的IP协议,采取了一系列措施,例如建立和拆除逻辑连接,流量控制、拥塞控制、差错控制等,向应用层提供面向连接的、可靠的字节流传输服务。

8.2 TCP段的格式

将应用层要传输的字节流分块,封装成若干个TCP段:

段首部:固定首部(20个字节)+  选项(0到40个字节,且必须是4字节的整数倍)

数据:2字节的整数倍

TCP连接中传送的数据流中的每一个字节都编上一个序号。

序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

序号的特点:

1. 代表了报文的顺序关系

2. 代表了数据流的位置,更便于流的复原

3. 报文的序号不连续。

TCP选项:

MSS(Maximum Sequence Size):最大段大小,内容字段告诉了对方本机所在网络能够接受的最大TCP段数据区的字节数。

窗口规模因子选项:固定首部窗口字段中最多只能表示65535个字节的空闲接受缓存大小。本选项用来扩大其表示。

时间戳选项:发送方在时间戳字段填写发送TCP段的时间,接收方将其复制到确认段的回显应答字段,并在时间戳字段填写确认段发送时间。发送方收到确认段后,可算出TCP段的往返时间RTT(Round Trip Time)。

8.3 TCP连接

TCP使用超时重传来解决IP不可靠问题。根据TCP段的序号来查重。

三次握手:

第一次握手:客户进程发出SYN(SYN = 1)段,请求建立连接。序号为客户选择的初始序号。建立连接钱,服务器进程在其熟知端口进行监听。

第二次握手:服务器进程返回ACK + SYN段(ACK = 1,SYN = 1),序号为服务器初始序号。确认号为客户序号加1。此时完成了一个方向上的TCP连接。

第三次握手:客户机返回ACK段(ACK = 1),确认号为服务器初始序号加1。此时完成了另一个方向上的TCP连接。

作用:

1. 结合超时重传和序号去重,可靠建立TCP连接。

2. 确认了对方的初始序号。

3. 确认了对方的MSS值。

TCP连接的拆除:

四次握手:

1. 一方传送完毕,发送FIN报文。

2. 等到收到对方ACK,拆除一个半连接。(不可发,可收数据)

3. 对方在发送完毕后,也发送FIN报文。

4. 对方在收到己方ACK报文后断开另一个方向上的半连接。

8.4 TCP流量控制

TCP的流量控制:滑动窗口法。

8.5 TCP拥塞控制

拥塞:网络中传输的数据过多,造成路由器缓存溢出导致数据丢失。数据丢失引起超时重传,进一步加剧网络拥塞。

TCP拥塞控制:控制发送方的发送速率,使得网络来得及传输。

TCP流量控制只考虑了接收方的接受能力,未考虑网络的转发能力。

拥塞窗口(cwnd):表示当前网络的转发能力,由发送方根据网络状况动态设置。

发送窗口 = min(接收窗口,拥塞窗口)

慢启动:

1. 一开始cwnd = 1MSS

2. 每收到一个段的ACK cwnd += 1MSS(指数级增长)

3. 当达到一个预设的阈值,进入拥塞避免。

4. 当出现报文丢失(超时)时,慢启动阈值(ssthresh)设为当前cwnd的一半大小,ssthresh = cwnd / 2。

5. 同时重置cwnd,则cwnd = 1MSS。

拥塞避免阶段:cwnd缓慢增大,即每经过一个往返时间RTT就把cwnd++,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长。

快速重传:

前提:要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。

基本思想:发送方只要一连收到三个重复确认的ACK就认为报文段丢失,并立即重传对方尚未收到ACK的报文段。

快速恢复:

当在快速重传阶段连续收到三个重复的ACK时,不执行慢启动算法,即拥塞窗口不重置为1,而是设置为慢开始阈值ssthresh减少后的数值,进行快速恢复。

8.6 TCP差错控制

差错类型:

1. 段丢失:检测:发送方使用重传计时器。处理:超时重传。确认段的丢失不需处理,因为TCP采用累计确认。

2. 段损坏:检测:接收方使用校验和字段。处理:丢弃出错的段,不返回确认段,由发送方超时重传。

3. 段重复:一般由超时重传造成。检测:接收方分析段序号。处理,直接丢弃重复段。

4. 段失序:由于TCP基于IP,不能保证按序到达。处理:接收方对先到达的段暂不确认,放入接收缓存,直到前面的段都到齐了再一起向上提交并返回确认。

8.7 UDP(User Datagram Protocol):用户数据报协议

UDP:无连接,不可靠的传输层协议。在IP上只增加了进程通信和可选的校验功能。不进行流量控制、拥塞控制;不对收到的数据进行确认。用于小数据的传输,如数据库查询。

TCP&IP基础概念复习的更多相关文章

  1. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  2. TCP/IP——基础概念简记

    TCP/IP协议族的分层: 应用层 运输层 网络层 链路层 互联网地址(IP地址):互联网上的每个接口必须有一个唯一的Internet地址,它一定的结构,分为ABCDE五类.A类保留给政府机构,B类分 ...

  3. 初入网络系列笔记(1)TCP/IP基础

    一.借鉴说明,本博文借鉴以下博文 1.BlueTzar,TCP/IP四层模型, http://www.cnblogs.com/BlueTzar/articles/811160.html 2.叶剑峰,漫 ...

  4. TCP/IP基础知识

    TCP/IP基础知识 网络 TCP/IP 引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP ...

  5. 【TCP/IP 协议】 TCP/IP 基础

    总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后开始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...

  6. 第二章 TCP/IP 基础知识

    第二章 TCP/IP 基础知识   TCP/IP  transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的.   ...

  7. TCP/IP基础总结性学习(5)

    与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 一. 用单台虚拟主机实现多个域名 HTTP/1.1 规范允许 ...

  8. TCP/IP基础总结性学习(7)

    确保 Web 安全的 HTTPS 在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题.使用 HTTPS 通信机制可以有效地防止这些问题. 一. HTTP 的缺点 HTTP 主要有这些不足,例举 ...

  9. TCP/IP基础总结性学习(6)

    HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文 ...

随机推荐

  1. Code Force 429B Working out【递推dp】

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...

  2. Python基础:03序列:字符串、列表和元组

    一:序列 1:连接操作符(+) 这个操作符允许把一个序列和另一个相同类型的序列做连接,生成新的序列.语法如下:sequence1 + sequence2 该表达式的结果是一个包含sequence1和s ...

  3. JavaScript原型链中toString()方法输出alert()和console.log()得到不同的结果

    <script language="javascript"> function myObj(){ var total = 0; } myObj.prototype.ad ...

  4. oracle函数 REPLACE(c1,c2[,c3])

    [功能]将字符表达式值中,部分相同字符串,替换成新的字符串 [参数] c1   希望被替换的字符或变量 c2   被替换的字符串 c3   要替换的字符串,默认为空(即删除之意,不是空格) [返回]字 ...

  5. 使用vux组件库常见报错($t)处理

    错误一: [Vue warn]: Property or method "$t" is not defined on the instance but referenced dur ...

  6. hdu 4114 Disney's FastPass(最短路+状态压缩)

    Disney's FastPass Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  7. C++第5次作业

    运算符重载 定义 - 运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同行为. 运算符重载规则 - C++运算符除了少数几个,全都可以重载,且只能重载C++已有的运算 ...

  8. Lecture Collection

    Distributed ML Yibo Zhu 主要讲了如何分布式的进行机器学习,主要用到的思想是指令的流水调度的相关的思想. IoT Zhenjiang Li 普通的各种卡是基于PIN来进行身份验证 ...

  9. 如何学习Python的一些总结

    https://mp.weixin.qq.com/s/w0NoDiYfvtTy8N3BVoIVpw 为什么选择Python 经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活, ...

  10. Python--day46--上节内容回顾及补充

    1,union(把两张表连起来,以上下的方式):具有自动去重的功能,有相同的就去掉. 结果: 2,union all就没有去重的功能 3,临时表,指定映射,条件,三元运算