欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 11_03 _Linux网络配置之三 TCP报文 有大用

TCP/IP五层模型的协议 (不规范,但是实用)

5)应用层

4)传输层

3)网络层(互联网层)

2)数据链路层

1)物理层


OSI的7层从上到下分别是 (规范,但不实用)

7 应用层 (具体的应用,比如 web 服务,使用 http 协议)
6 表示层 (在传输的时候 加密 解密 是否压缩)
5 会话层 (双方怎么建立会话的)(讲到应用程序的时候再说吧)
4 传输层  (源端口 目标端口 好像是tcp utd icmp?)  
3 网络层 (封装ip  源ip 目标ip)
2 数据链路层 (加mac的报文   源mac,目标mac  

1 物理层 (封装数据报文的前导码 )

image.png

Type of Service (TOS),服务类型,用来表示是不是加急传送,普通的报文的等等

image.png

Protocol 用于标识在 Data中所封装的上层协议的类型 (TCP UDP SAMP等)

Header Checksum 首部检验核,用于标识首部在传输过程中是不是发生了错误


image.png



ip 地址

ipv4点分十进制:

0000 0000 - 1111 1111

0-255


221.34.23.12

网址地址: 

主机地址:

32位二进制


A类:              子码掩码: 255.0.0.0  8位1      

首位0           0 000 0001 - 0 111 1111 

                    (第一位)127个A类,127用于回环  1-126

                     2^7-1 (应该是-2吧,因为 全0和全1都不是;;所以就是2^7-2,即126)次方个A类网

                     容纳多少个主机:2^24-2  (256*256*256-2=16777214个)

                     主机位全0:网络地址

                     主机位全1:广播地址                     


B类:              子码掩码: 255.255.0.0  16位1  

                    10 00 0000 - 10 11 1111 

                     128-191 

                    (第一位)64个B类, 总共(因为第二个8位,是可以任意变化的) 2^14次方个B类网      

                        129.1.0.0

                        129.2.0.0

                        130.1.0.1

                     容纳多少个主机:2^16-2   (大约 256*256-2 多个吧,还是 65534个  )

                     主机位全0:网络地址

                     主机位全1:广播地址           


C类:              子码掩码: 255.255.255.0  24位1  

                    110 0 0000 - 110 1 1111

                    192-223

                    (第一位)32个C类,总共(因为第二个,第三个8位都是可以任意变化的)2^21次方个C类网

                     容纳多少个主机:  2^8-2  = 254 ?

                     主机位全0:网络地址

                     主机位全1:广播地址           


D类:

                1110 0000 - 1110 1111

                 224-239

E类:

                剩下的是E类网


ICNN (国际互联网地址名称分配机构) (早期属于IANA)


私有地址: (任何一家公司都可以使用,但是不能上互联网的)

        A类: 10.0.0.0/8

        B类:  172.16.0.0/16-172.31.0.0/16     16个B类网  /16 掩码长度

        C类:  192.168.0.0/24-192.168.255.0/24      256个C类网

这些地址 无法与互联网通信,不会被路由器路由

做为源地址是可以的 但作为目标地址 在互联网上是接受不回来的


路由:选路的


路由协议

image.png


每个路由器只关心下一跳


image.png


路由条目类型:

目标地址是一个主机的 叫主机路由

目标地址是一个网络的 叫网络路由


最佳匹配 作为选择标准


0.0.0.0 表示任意主机,不是本地网络,默认路由 缺省路由

image.png


image.png


把相近的网络 合并成一个大网络

路由合并  超网  几个小网合并成一个大网

子网  


image.png


201.1.2.0/24

10            10个主机,在两个网

4,6            其中一个网是4个主机,另一个网是6个主机

掩码 26位


(我们从主机位借2位,为什么不借1位,因为对于网络来讲,我们不期望最后一个对应的位置为全0或全1?所以我们借2位吧?)

本来是 254个 现在 除了 全0和全1,只有124个地址可用了

划分子网会浪费地址的,就算启用全0和全1,也会浪费不少地址的

,因为中间有地址当作网址地址和广播地址了


image.png



掩码 26位 (网络号的位是1,主机号的位是0)

11 00 0000 

255.255.255.192


TCP/IP 也是沙漏模型,   在 IP层面弥合以太网和令牌网


image.png



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

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

都能够支持用户标记本地的不同进程,都可以使用端口



TCP 有连接的协议,类似于打电话,先发一个试探性报文,看在不在,不在,就不发正式报文

在的话对方就回复一下,然后说:你等着,我准备发,而后再发报文,,每发一个报文,对方就确认一下

TCP更可靠 (要求数据可靠的场所,才会使用TCP),互联网上的大多数应用都是针对TCP来完成的

现在带宽速度比以前高得多,所以TCP应用更多了,

web(http),ftp, smtp,pop3 (这些是应用层协议)等等  90%的网络应用以上是TCP



UDP 无连接的协议,类似于投信, 只管发送,至于到不到,它不管,对方不在的话,还退回来

UDP 效率高,速度快 所以即时通信软件,一般是UDP ,,,,,

qq是UDP(在应用层的协议(应用的层级)得到保证)

dns 查询,dhcp,tftp (这些是应用层协议)等等 

image.png

image.png

image.png


TCP 三次握手 建立连接(试探)的过程

1)第一次A先发试探性报文,问对方B在不在

2)第二次B回复对方A 我在

3)第三次A再发一次  好的,我准备发报文给你,你等着




握完手之后,TCP每发送一次报文,对方都确认一下



(TCP握手完成后,建立的是双向通道)(断开的时候也要双向断开)

传送报文完毕后 要拆除连接

image.png

四次断开(挥手)

1)TOM 先发送断开请求,

2)jerry同意

3)然后 jerry发送断开请求,

4)TOM同意 ,

此时 TCP连接才断开 (连接才拆除)

此时是 TOM 主动关闭 jerry 被动关闭

TOM两次等待 time-wait-1 (第一次等待人家jerry同意)  time-wait-2 (第二次等待人家jerry发送断开请求)  


等待的计时器,发送断开请求(还是所有请求),不响应,再发一次,没反应,再发一次,还不行,算了吧



image.png




tcp 首部

image.png


image.png


URG 紧急位  1 表示紧急指针有效

Urgent Pointer 紧急指针


ACK:确认位 1表示确认号有效

Acknowledgement Number 确认号


image.png


image.png



image.png


PSH 推送 不在缓冲,立即发送

RST 重置 当连接发生抖动故障的时候(网络断了,然后又然上去了) 

有可能发生重置(此时不必完全重新三次握手建立一个连接,只需要重置一下这个连接)(这个不必理解的太深)

image.png


image.png


image.png


接受方 缓存 所能够容纳的报文的个数 以及链路中所能够容纳的报文的个数  这是它们之间的协议

window Size :窗口大小, 一般取决于接受方 能一次接受的大小

image.png


image.png

紧急位为1,紧急指针有效,紧急位为0,紧急指针无效



image.png


image.png


序列号

确认号


SYN SYNchronization 发起请求 同步同传请求 建立交往的请求  SYN=1, 带上一个序列号,简称为sn ( sequence number )(有机制,其实不是随机生成的)


an (Acknowlegement) 确认号


FIN :Finished 断开请求  FIN=1


TCP 的data 里面可能包括应用层报文(比如 http首部)



image.png


image.png


image.png


image.png




 3次握手 SYN=1

 4次断开(挥手)  (FIN=1)

TCP的有线状态机(有限状态机) (TCP的连接就是在不同的状态之间不停的进行转换的)

image.png


对于服务器来讲是 监听(LISTENING) (被动打开)

对于客户端来讲是 发起请求 主动打开  发起 syn




image.png


image.png

进程到进程 也可以理解为 端到端吧 

端到端 (端口到端口)(进程到进程) 传输层

主机到主机  (IP协议 网络层)

点到点(底层二层协议)(ethernet(以太网) ppp(拔号不网) atm)


image.png


资源子网

通信子网


网络模型



linux 配置到网络中来

有 ip,子网掩码,

对于网络属性来讲, ip 和 子网掩码 是 最根本的

有 网关 (没有网关只能建立本地通信,无法与远程主机通信)

有 dns 通过主机名进行通信,指定dns服务器,把名称转换成ip,或者把ip转换成名称

网络功能是内核的组成部分


文件系统,网络功能 等都属于内核功能 kernel space

image.png

image.png


1)命令设置,立即生效,立即送到内核上,当场生效,不是永久生效

2)配置文件设置,不会立即生效,永久生效(只有当重新启动的时候才读配置文件,除非

强制让内核手动去读配置文件)



路由器其实就是个电脑,专门为了路由转发的电脑,只不过网络功能特强而已


linux 本身就是路由,可以多装几个网卡,当作路由器在来用就可以了,

也能够接受路由条目信息,也能够根据需求选择一个合适的路径去走


image.png


banding (bonging) 网卡绑定机制

image.png





普通分类: