计算机靠的是电器脉冲,将0.1变成我们可以识别的机制。
编码规则,两台计算机之间通信传递的都是高低电平
编码规则传递之前,接受者有解码规则,
编码规则和解码规则要对应。
编码规则和解码规则都遵循的规则叫协议。
protocol
两台计算机中间,怎么表示两个不同的文件。
两个网卡之间应该协商协定。按照某种规则隔开(这个时候就是报文了)
早期的网络是总线型的。、
计算机通信要MAC来标示,这样别人才知道跟谁通信。
传输多少个单位由设备来决定的,数据截取为1500
1500里面包含接受地址,少的时候没有什么问题,但是多的时候
就出问题了,因为总共就有一根线,一个通信信道这个时候出现了,以太网
和令牌环网,
以太网那个和令牌环网解决通信信道争用的问题的。
MAC
以太网,CSMA/CD载波侦听、多路访问、冲突检测(先听后发,边听边发,冲突停止,延迟重发)
令牌环网:谁能抓到令牌谁就可以发送。
以太网是公开的,开源的,开源的是最由生命力的。
令牌环是商业的。
减小冲突域,隔开冲突域,用什么设备来隔呢,
这个时候就需要网桥,早期的设备即使网桥,这就是桥接的概念
后来发展位交换机,
交换机是如何工作的,他是如何隔离两个网络的,
如何两两个计算机之间如何转发报文的。
交换机是由智能决策的,里面有个芯片,芯片里面由每个物理地址对应的接口
当一个数据报文来的时候,查看其物理地址对应的接口然后转发给
其对应的接口。
交换机是如何知道物理地址和接口对应的,交换机是可以学习的,
通过学习来知道的。
如何学习的,是根据报文的源地址来学习的。
如果不知道转发给谁这个时候就广播,当发送给的哪个就回应,
然后交换机记录下来。这样就完成了一个学习。
交换机必须由广播的功能,
冲突域,
广播域,广播可以到达的范围就是广播可以到达的范围。
将一个大的问题分为几个问题,这时候即使分层了,
理解分层的意义。
如果发送的速度不一样这个时候就需要流控
如果发送中间出现了错误这时候就需要循环冗余校验码
校验码 有效数据 标示有限数据长度 源地址 目标地址 前导码
为什么这种格式,为什么这样,这就是协议。
当四万台主机的时候,如果都不知道的时候,
核心交换机一直广播这个时候就有可能出现广播风暴,
隔离广播域,怎么隔离广播域,
这个时候就需要路由器。
这个时候IP地址,逻辑地址出现的必要性了。
路由器必须知道自己连的那些网络。
交换机是链接主机的。
路由器链接网络的。
路由器怎么知道链接的是那个网络的时候,也需要学习。
网络层出现。
这个时候需要在里面封装一层源网络地址,目的网络。
需要先拆开然后在封装源MAC
这个时候就需要网络地址,IP地址。
为什么要有网络地址+主机地址。
这个时候就需要掩码了,掩码用来确定网络的。
路由器怎么知道的网络的,路由表里挨个匹配。
如果有两个都匹配这个时候就是匹配最小的。
为了匹配检查的机制,匹配机制要消耗大量的CPU
本地间的通信有MAC来解决,网络之间的通信有IP来解决。
校验码 数据 源端口号 目标端口号 源网络地址 目标网路地址 源MAC 目标MAC 前导码
怎么决绝进程: 这时候就需要标记进程地址 用端口号来标记。
另外 TCP UDP
IP首部到底该封装那些信息:
报文首部:
每四个字节位一个元组32位
IP Header
IP版本号(四位)首部长度多长(4位)服务类型(8位效率跟可靠要哪个)总长度(DATA)
帧ID(片ID 16位) 3 片偏移量 (13)
TTL值(8) Protocol(8) 首部校验和(16)
源IP(32位)
目标IP(32位)
options 选项
Date 数据
从源进程到目标进程 这时候需要 TCP UDP报文
TCP首部:
源端口号(16位)目标端口(16)
序列号(32位)
确认号(32位)
首部长度(4位)保留位(6位)标志位(6位,标记报文属性)窗口大小(16位)
TCP 校验和(16位)紧急指针(当URG为1的时候 才有)
选项段
数据
端口号 路由器 交换机
数据 + TCP首部(源进程、目标进程 保证进程通信) + IP首部(源IP地址、目标IP地址 网络间通信)+ (源MAC 、目标MAC 保证本地通信)+前导码
拆前导码 送端口 封前导码 拆前导码 MAC看IP 封装 帧
报文传送: 报文-----交换机-------------------交换机------------------------路由器-----------------路由器----交换机----主机----网络层---应用层
应用层同时需要协议进行规范 www http ftp
应用层网关 网络层网关
应用层路由 网络层路由
(四层设备检查端口 看哪个服务 就是负载均衡)
改地址 nat
路由器----------------路由器
nat转换更安全 2 也可以节省IP地址
源地址转换 目标地址转换
私网出去 请求私网
TCP状态: TCP 的有限状态机(按照某种次序和逻辑进行转换)
TIMEWAIT 240秒
A(closed)--------SYN_SEND ()--B(listen)SYN_RECV 确认 ESTABLISHED----A变(ESTABLISHED)
A(ESTABLISHED)-----FIN (TIME_WAIT1)----B(ESTABLISHED)--REV--(CLOSE_WAIT)--ACK---A(TIME_WAIT2)
A (TIMEWAIT)
主动请求的一端不一定是主动关闭的一端。
请求服务,请求随机端口号,而服务器 响应可能实用专门的端口号来响应
0-65535总共这些端口。1024一下只有管理员才能调用。
TCP:叫有链接的协议。
建立TCP连接:建立了一个专用通信线路。
UDP: 无连接的协议。
TCP三次握手
A (生成随机序列号1000)发送请求 B
B (确认号序列号加1-1001,自己的序列号随机生成的6777)响应 A
A (确认号:6778,序列号1001)响应 B()
建立通信
如果重传如果对方已经响应了,在重传的时候就会忽视,因为
确认号和序列号和上次的一样。
标志位: URG 为1 有效 为0 标示无效
ACK 确认 为1 当初次为零 连接建立后为1
PSH 推送位
PST 重置位
SYN 同步位 (序列号是否有效 三次各自第一次位1,其他的为零)
FIN 结束位 (只有结束的时候FIN才为1,建立连接传输的时候不能为1)
四次断开:A 请求断开 B 响应 A
B请求 A 响应 A
窗口大小: 接受方可以接收多少个。第一次比如窗口大小为10 传10个,然后处理里两个 窗口大小变为两个,窗口大小是变动的。滑动窗口
窗口大小 和 能接收多少个
接收大小
窗口大小 能处理多少个(相当于内核中的缓存区) 套接字缓冲区。 接收缓冲和发送缓冲。协商生成的,以小的为主