T参考: 一步一步学习IP路由流程

第一章 网络基础知识

OSI参考模型将网络通信分为7层,对通信中的必要功能进行了归纳:

1、应用层: 为应用程序提供通信的细节 如:文件传输、电子邮件

2、表示层:将应用信息转换为适合网络传输的格式或将下一层数据转换为应用层格式数据 如:utf-8编码转换

3、会话层:负责建立和断开连接及数据的分割等

4、传输层:保证数据的可靠性传输

5、网络层:负责路由和寻址将数据传到目标地址 。

6、数据链路层:负责物理层面上的互连、节点之间的传输(只负责同一局域网中的分发)。一般交换机用于数据链路层直接的数据传输

7、物理层:将比特流(0、1)与电压之间的转换

分组交换是指计算机将数据发送给路由器,路由器将数据缓存再发送到目标计算机

MAC地址和IP地址的关系:

MAC用于同一网络中的识别、ip地址用于网络寻址。IP地址包含:网络号及主机号,网络号相同表明处于同一网络中

路由器和交换机的关系:

交换机:用于数据链路层的转发

路由器:用于网络层的转发

网络的构成要素:

网卡:任何计算机连接网络必须通过网卡

中继器:用于转换、放大网络信号。如电缆和光缆的信号转换、长距离网络的信号放大

交换机:用于数据链路层连接的网络连接并提供数据校验保证数据有没有损坏(根据mac地址就行处理)

路由器:用于连接不同的数据链路层。提供ip的寻址

4~7层交换机:指传输层到应用层的数据交换。比如:web服务器的负载均衡、防火墙等

网关:用于传输层以上的数据的转发和转换。比如:代理服务器、防火墙

网络的构成:由骨干网络和边缘网络组成。

骨干网络:一般是指用高速路由器传输大量数据

边缘网络:由很多普通路由器和交换机构成,他要经过骨干网络才能连接到网络

移动网络构成:

第二章 tcp/ip协议基础

TCP协议标准是由IETF制定并由RFC文档进行记录

TCP协议与OSI协议模型的关系

物理层指一切看见的物理设备

数据链路层指设备的驱动程序来实现通信

网络层指在不同网络间通过寻址找到路由路径

传输层指通过tcp和udp来实现真正的数据传输

TCP各个分层间的构成关系

每个分层中都会在,发送的数据包中附加上一个首部

经过数据链路的包都至少会包含发送端和接收端的地址

数据包的接收处理

数据链路层:判断接收到包的目标MAC地址是否为自身地址。若不是则丢弃,若是则传递到IP层

IP层:判断包首部的IP地址是否为自身地址。若是则根据传输层的协议类型传到TCP层或UDP层

TCP层:对包的数据进行校验和并判断顺序是否正确,接收完毕后发送回执确认

应用层:对传输层的数据处理

第三章 数据链路

数据链路的段指一个被分割的网络

网络拓扑指网络连接和构成的形态:总线型、星型、环型、网状型

MAC地址用于在数据链路中主机的识别

数据链路网络的类型:

共享介质:共享同一种通信介质 如:对讲机

非共享介质:独自占用通信介质 如:交换机

半双工通信:同时只能一方进行数据发送接收

全双工通信:可以多方同时进行数据发送接收

交换机的自学过程:

交换机内部有个记录各个端口与MAC地址对应交换表,当有数据送到对应的MAC地址时,则在交换表中增加一条记录

交换机的转发方式:

储存转发:校验数据帧后再进行转发

直通转发:当获取到对应的mac地址端口后直接开始转发

环路检测技术:环路是指某台设备出现问题导致数据包不停的被网络中循环发送

生成树方式:定时的检查端口是否正常,若不正常重新生成交换表

源路由法:在发送帧中写入目标地址RIF,即使某个设备损坏也能到到目标地址

以太网:现在终端与交换机一般采用独占电缆的方式实现以太网通信

以太网的传输速率的表现方式是以时钟频率进行:

比特、字节、8位字节关系

以太网帧的格式:前导码+帧本体

第四章 IP协议

ip层和数据链路层的区别:数据链路层提供两个设备之间的通信,ip层提供不同网络的之间的通信

IP地址:用于在所有网络中识别目标主机的地址

路由控制:为使数据包从源地址到目标地址所采用的控制方法

跳:数据链路层下从源mac地址到达目标mac地址的网络路径,路由控制由许多跳构成

多跳路由:路由器在转发数据包时只指定下一个主机或路由的ip地址,而非全部路径

路由控制表:为了将数据包发送给目标主机,所有主机有一个路由控制表,记录下一步IP包将发送到哪个路由器

数据链路层抽象化

IP层对不同的链路层进行了抽象化,对IP层最大的区别就是MTU(最大传输单位)。当数据包超过MTU,IP层将对其进行分片处理和多次传输并对上层来说是无感知的。

IP协议面向无连接方式以求达到简化和提速的目的

IP地址的构成

网络地址+主机地址:网络地址表示不同网络间的地址,主机地址表示同一个网络间的不同主机地址 形如:192.168.10.5/24

IP协议网络地址的格式

将32位二进制以8位一组,分为4组并以“."为分割,最后转换为10进制

广播地址

用于在同一链路之间不同主机之间发送数据包。分为:

本地广播:同一网络间的数据发送

直接广播:不同网络间的数据发送(一般被路由屏蔽)

IP多播

用于不同网络间的数据群发(可以通过路由)

子网掩码

对应IP部分全部为1,对应主机部分全部为0,这样可以用于表示ip的地址范围就扩大。

全局地址和私有地址

即使通过子网掩码IP地址不够用,所以只有一部分路由主机使用全局地址来连接互联网,子网网络的主机采用私有地址。

全局地址现在一般通过isp运营商获取,isp向ICANN获取。

IP地址与路由控制

IP地址需要路由控制表才能到达下一个路由控制器。路控制表记录着目标地址与路由器的映射关系。

路由控制聚合 指对类似的IP地址进行合并,减少路由ip地址的查找时间

IP报文的分片与重组

由于在路由中MTU的不同,路由器可以对数据包进行分片传输。由于数据包存在多次的转发、丢包情况,所以只在终端重组。

路径MTU发现

为了避免分片,主机通过某种手段获取链路中的最小mtu到达不用发片的目的

IPv4首部

标识:用于分片时的重组

位偏移:用于分片重组时各个数据的位置偏移量

首部校验和:用于校验IP的首部有误数据丢失

第五章 IP协议相关技术

主机识别码:在中可以通过主机识别码在host文件来映射ip地址,当ip地址更新时就需要更新host文件

Dns域名:它呈现出树状的层级结构,每个层级之间有父子关系

域名服务器

保存着域名和ip的映射关系,当主机的域名和ip关系更新时就需要更新所有域名服务器

根域名服务器

所有的域名服务器都需要在根服务器下进行注册才能让其他域名服务器进行查找

解析器

进行dns查询的主机或软件。一般主机都要注册一个以上域名服务器。

DNS查询流程

首先向上一级查询dns对应ip,若没有则再向上进行查找,直到查找到相应的ip。查找后会在主机进行缓存,方便以后快速查找

DNS中的其他记录

PTR:从IP地址检索域名

A记录:主机名与ip的映射

NS记录:上下层域名服务器ip地址映射

ARP协议

通过发送ARP数据包找到ip对应的mac地址

第六章 TCP与UDP

根据IP协议中的协议类型字段判断它的上一层是tcp还是udp

tcp协议通过端口号来确定发送数据到哪个端口

TCP和UDP的区别

tcp可以确保数据正确到达,效率较低

udp不能确认数据到达,效率高

TCP通过源IP、目标IP、源端口号、目标端口号、协议号来识别一个通信

端口分配

通过标准制定(如http)范围:0~1024

通过注册:1024~49151

时序分配法:通过系统随机进行分配

TCP收到数据后通过“确认到达”来回复发送主机数据已收到来保证数据不丢失

TCP发送端带有数据的序列号及长度,接收端接收到后发送下个数据的开始序列号作为确认应答

“重发超时”即当TCP发送端等待ACK的超时时间,若超过即进行重发

重发超时的长短根据网络情况及报文的往返时间进行动态的修正。开始以6秒为基础,以0.5秒为单位进行修正。若多次重发未响应则认为已经断开

TCP的三次握手

通过发送SYN表示请求建立连接,接收端接收到请求后发送SYN和ACK包进行反请求,发送端接收到后发送ACK进行确认

TCP的四次撒手

通过发送FIN请求断开请求,接收端收到请求后发送ACK同时发送FIN进行反请求,发送端接收到后再次发送ACK进行确认

TCP以段为发送单元

段的大小为MSS(最大消息长度)。MSS的大小通过三次握手来在两端之间即使出

窗口控制

当以段为单位进行确认答复时,通信效率非常低下。通过窗口控制可以不必等待每个段的答复,而是连续发送几个段然后再等待答复。

滑动窗口控制

以窗口控制为基础,当某个段的确认答复到达时,窗口移动到该段前面到达不必重发的目的

窗口控制的重发机制

接收端收到而发送端未收到确认回复:接收端会缓存当前数据,并会发送下一个期待的序列号,

若序列号大于未收到确认回复的序列号则不必重发

接收端未收到:接收端会多次发送期望序列号的确认回复,若超过三次则发送端会进行重发

流控制即窗口大小控制

当接收端接收能力下降时(如:高负荷时),接收端可以通过tcp的窗口大小字段来缩小窗口值达 到控制流的消息。

若接收端长时间为收到确认回复,它会发送一个窗口探测包获取最新窗口大小

拥塞窗口控制即根据网络情况动态控制窗口大小

发送数据时会根据接收端接受窗口和拥塞窗口的最小值

拥塞窗口的大小为:在启动时为1当每次收到确认回复时会加1,直到到达拥塞窗口阀值。

到达阀值后会呈现拥塞窗口涨幅会收窄呈直线增长方式

在超时重发时拥塞窗口的启动值会重设置为1

在3次确认回复时启动值为当时窗口大小一半+3

TCP 协议的构成

序列号:初始化由随机数生成,发送端每次发送就累加其大小。

数据偏移:指tcp的数据部分的偏移位数

保留:为以后扩展使用

控制位:用于表示tcp的某些属性 如:是否为SYN包等

窗口大小:用于表示每次最大的窗口的大小

校验和:用于校验数据是否被破坏

紧急指针:用于表示暂停通信的字段

图解tcpip读书笔记相关推荐

  1. 图解HTTP读书笔记(十)

    图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. ...

  2. 《算法图解》读书笔记

    这是一本很入门的算法书,介绍的东西还算简单明了,大体补充了一些自己没理解的东西. 粗略地看了一下,感觉还是"纸上得来终觉浅,绝知此事要躬行!" <<算法图解>&g ...

  3. 《算法图解》读书笔记—像小说一样有趣的算法入门书

    前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...

  4. 《TCP/IP图解》读书笔记

    看这本书的目的: 了解计算机之间是怎么通信的 熟悉TCP/IP协议 后面就这两个目的进行展开,要达到这两个目的,读这本书,学到了哪些知识. 一.计算机之间是怎么通信的 先来了解下面几个概念,中继器,二 ...

  5. 图解机器学习读书笔记-CH6

    鲁棒学习 最小二乘法易受异常值影响 异常值处理: 提前剔除异常值再训练 提高异常值的鲁棒性--鲁棒学习算法 1. \(L_1\)损失最小化 第\(r_i\)个样本的残差: L2损失随残差呈平方级增长: ...

  6. C#图解教程读书笔记(第3章 类型、存储及变量)

    1.C#的中的数值不具有bool特性. 2.dynamic在使用动态语言编写的程序集时使用,这个不太明白,看到后面需要补充!! 动态化的静态类型 3.对于引用类型,引用是存放在栈中,而数据是存放在堆里 ...

  7. C#图解教程读书笔记(结构)

    结构是值类型 分别声明一个类和一个结构,实例化后,结构直接保存在堆中. 所以当用一个对象给另一个对象赋值时会有不同: 在赋值后类类型是指向堆里同样的部分,所以cs2和cs1本质上是一样的.而结构类型则 ...

  8. C#图解教程读书笔记(数组)

    数组的类型 交错数组每个子数组的长度可以不同 数组是对象 数组是引用类型,因而数组的内容存储在堆上. 一维数组或矩形数组声明及其实例化 int[] arr2 = new int[4]; MyClass ...

  9. C#图解教程读书笔记(深入理解类)

    类的实例化 类的静态成员 静态成员可以从类的外部访问:D.Mem2,D为类名.而且静态成员即使实例销毁依然存在且可访问. 静态函数成员 不能访问实例成员,但能访问静态成员. 成员常量 成员常量类似与静 ...

  10. 图解设计模式读书笔记(十三)——Mediator(仲裁者)模式

    使用场景: Mediator模式适用于多组件之间存在制约关系的情景.例如Gui开发中,各种组件是独立的,但开发的界面中各个组件存在制约关系.书中提到的登陆框的例子,便是这种情景. 类关系图: 仲裁者M ...

最新文章

  1. HTML DOM Document 对象
  2. OpenGL material light材质灯光的实例
  3. .NET Core etcd 配置源
  4. ​如何编写高质量的C#代码(一)
  5. P5290-[十二省联考2019]春节十二响【贪心,堆】
  6. 面试官问:一个Java字符串中到底能有多少个字符?
  7. 关于建立 Carbon Forum 后 设置访问链接的问题
  8. 王思聪旗下公司破产拍卖:13.8万成交、溢价超100倍
  9. Lombok不起作用原因
  10. Unity3D 协程 浅谈
  11. zend studio 调试php,在Zend Studio中调试PHP(5/5)
  12. SiamRPN代码讲解,训练过程讲解
  13. 英语知识系列:单词中元音字母发音规律
  14. 【科创人独家】华旦天使张洁:风口是创业者的造物,投资本质是件农活
  15. 蚊虫叮咬后的去痒妙方大全
  16. 玩客云安装青龙面板实现京东签到薅羊毛
  17. 市面上有哪几种门_市面上的木门分类常识
  18. Ubuntu18.04 网卡问题解决(?)
  19. Matlab中meshgrid的用法
  20. 爬取武汉所有的公交站名

热门文章

  1. 多备份与Symantec NBU备份软件对比
  2. Spring Boot太重,Vert.x真香!
  3. C语言素数的乘积,C语言,有关素数
  4. uniapp-小程序 调用阿里云OCR身份证识别
  5. CSDN博客新手引导手册
  6. saas,pass介绍
  7. java种语言包在线翻译_Java 实现在线翻译功能 调用微软Bing API
  8. Android socketnetty实现
  9. IDEA的插件和一些主题推荐
  10. java web学习心得