计算机网络笔记
链路层的流量控制是点对点的,传输层的流量控制是端到端的。
链路层流量控制手段:接收方收不下就不回复确认
传输层流量控制手段:接收端给发送端一个窗口公告,告诉接受缓存之类的
链路层流量控制方法:停等协议、滑动窗口协议(包括后退N帧协议GBN 和 选择重传协议SR)
停等协议:发一个帧就停,收到对方的确认后再发下一个。 (是一种特殊的的滑动窗口协议) 慢,效率低
滑动窗口协议:
GBN维护发送窗口和接受窗口,可一次连续发送几个帧(发送窗口的大小),但是收到按序的确认(累计确认)后才能向前移动窗口。 如果出现超时,发送方重传所有已发送但未被确认的帧。 接收方无需缓存任何失序帧。 累计确认会造成批量重传
SR接收窗口也>1, 接受方会缓存窗口范围内的失序帧 发送方只有收到了窗口下界帧的确认才会向前移动窗口,1帧或几帧,直到未确认的
GBN接受窗口=1,SR接收窗口>1
速率、带宽、吞吐量:都是b/s,kb/s,Mb/s...
码元: 用一个固定时长的信号波形,代表一组离散值
1码元可以表示多个bit :1bit、2bit、3bit 2种波形(状态)、4种波形、8种波形
波特:码元传输速率的单位 码元/秒 1波特表示每秒传输一个码元 = 1b/s、2b/s、3b/s
奈氏准则:极限码元传送速率为 2W baud , W是信道带宽,单位是Hz,太快了会失真
极限数据传输速率2Wlog2V V=2,4,8
香农定理:有噪声情况下 极限传输速率 = Wlog2(1+S/N) W是信道带宽,单位是Hz, 信噪比S/N db = 10log10(S/N)
只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。
PPP协议:常用于广域网、点对点链路、只支持全双工
无需纠错、序号、流量控制
需要封装成帧、透明传输、向上满足多种网络层协议、向下适应多种链路类型
差错检测、连接状态检测
最大传送单元MTU
网络层地址协商
DHLC协议:面向比特的数据链路层协议、全双工
MAC地址:48位,如52-54-ab-31-ac-c6
单播地址:第一位为0
多播地址:第一位为1
广播地址:全1
以太网只实现无差错接收,不实现可靠传输
以太网数据帧,最长1500+18字节,最短64字节
帧太短可能造成发完整个帧后,帧在信道中和别人冲突了,但是发送者以为发送完了,没有冲突
DataLength/Rbps > 2 * xindaoLength / v米每秒
传输时间要大于两倍的最大传播时间,所以最短64字节,而且信道长度也不能太长
CSMA协议:载波监听多路访问协议。 先听后发
CSMA/CD:载波监听多路访问/碰撞检测 用于解决共享网络、半双工网络的冲突问题
发送端:先听后发、边发边听、冲突停止、延迟重发
接收端:边收边听,验证地址,验证帧校验
只要经过2r时间没有检测到冲突,就可以确定发送过程中没有冲突。
CSMA/CA:载波监听多路访问/碰撞避免 “有礼貌” 适用于无线局域网(因为冲突检测难以实现)
发送端:先听后发,空闲则先发一小段报文(RTS request to send ),
接收端:若准备号则发回CTS(clear to send)
发送端:若收到CTS则发送数据,并预约信道,申请一段时间
接收端:若成功接受,则发回ACK
发送端:若无ACK,则延迟重发
ALOHA协议: 纯ALOHA:不监听信道,不按时间槽发送,随机重发。想发就发。 发送方不检测冲突。没收到ACK就重发。
时隙ALOHA:划分时间片,想发送只能在时间片开始时发送,遏制想法就发的程度。
IP数据报:首部+数据部分(TCP、UDP段)
首部可分为固定部分(20B)、可变部分
固定部分包括:
版本:IPv4、IPv6
首部长度 (5~ 15) * 4B、 单位是4B
总长度 0~65535 B
标识、标记、片偏移 : 用于IP数据报分段
数据报长度要<MTU
同一数据报的所有分组使用相同值
标志 中间位DF区分能否分配DF=0能分片 最低位MF区分是否为最后一片,最后MF=0,前面的MF=1
片偏移 单位是8B
生存时间TTL:每经过一个路由器就-1,变为0则丢弃
协议 TCP对应的值是6、UDP17、ICMP、ICMP、OSPF
首部校验和
源地址、目的地址 32位
可选部分:0~40B 排错、测量、安全
A 1.0.0.0 -- 126.0.0.0 1B网络号
B 128.1.0.0 --191.255.0.0 2B网络号
C 192.0.1.0 -- 223.255.255.0 3B网络号
D 224.0.0.0 -- 239.0.0.0
E 240.0.0.0 --255.0.0.0
0.0.0.0 本网范围内的主机
网络号全0,主机号为特定值 表示本网内特定主机
255.255.255.255 表示本网广播地址
网络号为特定值,主机号全0 表示一个网络
网络号为特定值,主机号全1 表示对一个网络上所有主机广播
127.x.x.x 用于本地软件测试
CIDR 128.14.32.0/20 20位网络号,12位主机号 最长前缀匹配
ARP协议: ip -> mac 本网段 解决下一跳怎么走的问题
封装过程中,为了获取目的主机的MAC地址 ,由目的主机的IP地址获取其MAC地址
广播ARP请求分组,原ip+目的ip+原MAC+全1填充, 我的ip是xx,mac是xx,我想要目的ip的mac地址
单播返回所请求的mac ip+mac
若目的ip不在同一网段,则目的mac填写默认网关的mac
ICMP协议:支持主机或路由器进行差错(异常)报告、网络探询
发送特定ICMP报文,作为IP数据报中的数据
ICMP报文: 作为ip数据报中的数据部分
类型、代码、校验和、数据
差错类型:
终点不可达 无法交付时
源点抑制 拥塞控制 拥塞丢数据时
时间超过 TTL=0时 应用traceroute命令
参数问题 首部字段有问题时
改变路由(重定向) 有更好的路由时
询问类型:
回送请求和回答报文 主机或路由器向特定目的主机发出询问,收到此报文的主机必须给源主机或路由器发送ICMP会送回 答报文,例如对ping命令的回答,目的是测试目的主机是否可达,及其状态。
时间戳请求和回答报文 请求某个主机回送当前日期和时间
DHCP协议:动态配置IP地址,是应用层协议,使用C/S模式,基于UDP
即插即用、允许地址重用,地址续租
主机广播DHCP发现报文 “有没有DHCP服务器啊”
DHCP服务器广播DHCP提供报文 “有” “有” “有”
主机广播DHCP请求报文 “我用你给的ip了,别人不用等了”
DHCP服务器广播DHCP确认报文 “用吧”
RIP协议: 距离向量算法,路由器只掌握物理相连的邻居及链路费用 是应用层协议
RIP允许一条路由最多只包含15个路由器,距离16表示网络不可达。
仅和相邻路由器交换信息,信息是自己的路由表(目的网络,距离,下一跳),每30s更新一次,超过180s没收到就判断邻居死了。
初始时,路由表中只有直接相连的网络。迭代至收敛。
好消息传得快,坏消息传得慢
OSPF协议: 链路状态算法,所有路由器掌握完整的网络拓扑和链路费用信息
Dijkstra最短路径算法
BGP协议: 自治系统AS之间的路由选择协议
UDP协议: 无连接的用户数据报协议 17
服务:差错检测、复用分用
特点:无连接;不可靠;适合少量数据、面向报文(不合并,不拆分,直接封装);无拥塞控制,适合实时应用
首部开销小8Byte,16位源端口号,16位目的端口号,16位UDP长度(0~65535),16位UDP校验和
校验:16位一组,UDP校验和初始全0,二进制求和,和取反作为UDP校验和,校验时也加,和是全1则无错
TCP协议: 面向连接的传输控制协议 不提供广播或多播服务 协议号6
特点:面向连接(虚连接);点对点;可靠有序,不丢不重;全双工;面向字节流(将应用层数据看成无结构的字节流)
20Byte固定首部+选项+填充
16源端口、16目的端口
32序号 字节流中字节的序号(每个报文中第一个字节)
32确认号 下一个想收到的字节序号
数据偏移(首部长度,以4B为单位)、ACK、SYN··、 16窗口 SYN=1时表明是一个连接请求/接收报文 FIN=1时,表明要求释放连接
16校验和、16紧急指针(URG=1时) 窗口指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
DNS 端口号53
主机:发送域名给DNS服务器,先查询本地域名服务器,本地不知道就去问根域名服务器,
根问顶级,顶级问权限,权限问区,最后结果逐层返回 --纯递归查询
根把顶级的ip给本地,本地问顶级,顶级把权限的ip给本地。。。。 --迭代查询
DNS服务器返回域名对应的ip地址
主机接下来通过ip地址建立通信
DNS服务器按树状层次划分
根->顶级域名服务器->权限域名服务器
FTP
基于C/S,用户通过一个客户机程序连接至在远程计算机上运行的服务器程序,使用TCP实现可靠传输
服务器进程端口21、20 21:控制进程 20:数据传送进程 服务器主动模式 被动的大于1024随机
提供不同类型主机系统(硬件软件系统可以都不同)之间的文件传输能力
登陆
ftp地址 用户名&密码
匿名登陆
TELNET 端口号23
SMTP、POP3 端口号25 Foxmail、Outlook
C/S模式、TCP连接
SMTP发
POP3收
SMTP:
命令、应答信息
连接建立、邮件传送、连接释放
请求连接
220 Service ready
HELLO命令
250 OK / 421Service not available
MAIL FROM ..
250 OK / 451(452、500..)
RCPT TO .. 可以有1个或多个
250 OK / 550 No such user here
DATA
354 start mail input;end with<CR><LF><CR><LF>
data....
250 OK 接收结束
QUIT
221 同意释放
POP3: TCP C/S 端口号110
HTTP 端口号80 C/S
无状态(cookie来弥补)、无连接
URL不区分大小写
服务器进程监听TCP的端口80
方法 URL 版本 CRLF 版本 状态码 短语 CRLF
首部字段名:值CRLF 首部字段名:值CRLF
··· ···
首部字段名:值CRLF 首部字段名:值CRLF
CRLF CRLF
实用主体 实用主体
方法:GET、PUT、POST
首部字段名:Host 自己的IP地址
Connection close表示非持续连接、open。。
Cooked 一个标识号,记录历史信息
所用浏览器
状态码:
1xx:通知信息 eg:请求收到了、正在处理
2xx:成功 eg:接受、知道了
3xx:重定向 eg:完成请求还需采取进一步行动
4xx:客户的差错 eg:请求出错、不能完成
5xx:服务器出错 eg:服务器失效、无法完成请求

浙公网安备 33010602011771号