[其他]计算机网络-自顶向下方法 学习笔记
Posted z354681250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[其他]计算机网络-自顶向下方法 学习笔记相关的知识,希望对你有一定的参考价值。
计算机网络与因特网
Nobody no why, it just works!
by Qijd
一、发展史
- 分组交换 1961-1972
- 专用网络和网络互联
开始产生TCP UDP等协议 - 网络的激增 1980-1990
- 因特网爆炸 29世纪90年代
万维网应用出现
一以单计算机为中心的联机终端系统
二以通信子网为中心的主机互联
三计算机网络体系结构标准化
二、基本构成
- core — edge — resourse
资源子网与通信子网构成计算机网络
端系统通过 因特网服务提供商 ISP(InternetServiceProvider)接入因特网
端系统、分组交换机和其他因特网部件通过protocol进行信息的接收和发送
1 有线传输
- 双绞线
- 光纤
- 同轴电缆
2 拓扑结构
- 总线型
- 环型
- 星型
3 分类
传播方式
- ppp 点到点
- broadcast 广播
地域范围
- LAN 局域网 以太网等
- WAN广域网 跨越城市、国家
- MAN城域网
4 性能指标
- /bit per second即/bps
- 带宽 bandwidch
- 时延 delay
- 传输时延 transmission 路由器将所有byte推向链路所需时间
- 处理时延 process 检查分组首部、决定将分组到向何处所需时间(处理后,进入排队时延)
- 传播时延 propagation 在链路上从A路由器传到B路由器的所需时间
时延宽带积 == 链路容量
5 交换方式
- circuit switch 电路交换:独占带宽 有独立的建立、连接过程
- packet switch 分组交换:共享带宽
其中,Internet采用的是分组交换
三、网络体系结构
1 协议
- 语法 syntax
- 语义 symanties
- 时序 timings
由ISOC(Internet society)定制协议
2 层次化协议
layer model层次模型
TCP/IP参考模型
应用层 application 应用程序及应用层协议存留 分组称为报文
运输层 transmation 端到端的管理 分组称为报文段segment
网络层 internet 寻址,将数据报从一台主机运输到另一台主机 分组称为数据报dataram
数据链路层 datalink 将分组从一个结点移到另一个结点 分组称为帧
物理层 physical 数据转化信号,将帧中的bit数据一个一个地移动到下一个结点OSI/RM参考模型
应用层
表示层 解释交换数据的含义
会话层 提供数据交换定界与同步
运输层
网络层
链路层
物理层
每一层协议向上一层的协议提供服务
他具有结构化概念化的优点。模块化使系统组件更新更为容易
3 TCP/IP协议族
TCP: Transmation Control Protocol
UDP: User Datagram Protocol
IP: Internet Protocol
DNS: Domain Name Server
ARP: Address Resulation Protocol
4 面向连接
- TCP 可靠 面向连接 确保传递与流量控制
- IP UDP 不可靠 非面向连接
应用层
一、HTTP(Hypertext Transmission Protocol)
- 工作原理: 客户程序和服务程序通过交换http报文。http定义了web客户端和web服务端的请求与传送页面的方式。
- 默认port 80
- 是一个无状态协议,不保存客户任何信息
- 交互过程:HTTP客户建立了一个与服务器的TCP链接,浏览器和服务器进程通过嵌套子接口访问TCP,客户向接口发送http请求,并接受响应;服务器通过接口接收请求并响应给客户。
- 报文格式:
1 请求报文
GET /page.html HTTP/1.1 //方法字段、URL字段、HTTP版本字段
HOST: bjfu.edu.cn //指明主机
Connection: close //是否开启持续连接
User-agent: Mozilla/5.0 //用户代理,即浏览器类型
Accept-language: cn
第一行叫请求行,后继行叫首部行
2 响应报文
HTTP/1.1 200 OK //协议版本字段、状态码和相应信息
Connection: close //是否开启持续连接
Date: Fri, 01 July 2016 21:10:04 GMT //报文产生发送时间
Server: Apache/2.2.3 (CentOS) //服务器类型
Last-Modified: Fri, 01 July 2016 21:10:04 GMT //对象创建或修改最后时间
Content-Length: 6821 //实体对象长度
Content-Type: text/html
一个初始状行,六个首部行
二、FTP(File Transfer Protocol)
- 由两条TCP传输 一条控制链接port 21,一条Data链接 port 20
- 客户建立FTP会话,FTP与客户端在21端口发起一个连接;FTP服务器接收到一个文件传输命令后,在数据连接上传送文件,然后关闭链接。
- PORT模式 主动式 当被要求传输数据时,服务器向客户发送数据连接请求
- PASV模式 被动式 当被要求传输数据时,客户向服务端发送数据连接请求
三、SMTP(Simple Mail Transfer Protocol)/POP3(Post office Protocol var3)
1 SMTP
- 工作原理:用户代理把报文发送给邮件服务器,邮件服务器上的SMTP在发现报文后,创建一个运行在目标邮件服务器上的SMTP服务器的TCP连接,于是两个SMTP通过TCP收发报文。
- SMTP主要是一个推协议
- port 25
- 报文包括:From To Subject
2 POP3
- 工作原理:将邮件服务器上的报文拉倒本地PC
- POP3是一个拉协议
- port 110
base64编码
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
Quoted-Printable编码
Quoted-Printable也是MIME邮件中常用的编码方式之一。同Base64一样,它也将输入的字符串或数据编码成全是ASCII码的可打印字符串。
四、DNS(Domain Name System)
- port 53
- 工作原理:应用程序需要将主机名转换为IP地址,这时调用DNS客户端,并指明主机名。DNS接收后,向网络中发送一个DNS查询报文。最终用户主机接受一个DNS回答报文。
- 递归查询或迭代查询
1 查询和回答报文格式相同
标识符2 标志2
问题数2 回答RR数2
权威RR数2 附加RR数2
问题 //包含正在查询的信息,名字与类型(A、MX等)
回答 //答复IP地址
权威
附加信息
前12个字节是首部区域(2代表2byte)
标识符唯一标志查询,用于匹配
标志0代表查询,1代表回答
权威1代表权威DNS服务器
附加数啊表示希望递归(查询)或递归可用(答复)
2 其他概念
FQDN: 全称域名 主机名+全路径
PQDN: 正式域名
传输层
一、传输层介绍
- socket是传输层或链路层等,提供给应用层的API
- 多路分解:主机接收到运输层报文段,需要定向到适当的套接字,从而交给所需进程。这个将报文段数据交付给正确套接字的过程叫多路分解
- 多路复用:在从不同套接字中收集数据块并封装首部信息(便于分解),传递到网络层叫多路复用
二、UDP
1 报文格式
source port(2B) | destination port(2B)
total length(2B) | check sum(2B)
报文段(<=535B)
2 反码求和计算
发送方对报文段中所有(3个)16bit字进行求和,最终结果进行反码运算。加法溢出位要放到最低位进行回卷。这成为校验和。
接收方将四个16bit字进行求和(仍然回卷),如果不全为1,则出现差错。
伪首部:
32位源IP地址、32位目的IP地址、8位填充对齐、8位协议、16位UDP长度。通过伪首部的IP地址检验,UDP可以确认该数据报是不是发送给本机IP地址的;通过伪首部的协议字段检验,UDP可以确认IP有没有把不应该传给UDP而应该传给别的高层的数据报传给了UDP。
三、可靠协议
- Check校验码:通过校验码判断包内容出错error时直接丢弃;
- Ack回应:(ARQ协议)产生了lost丢包或error错包,通过双方Ack(或NAK)对方发来的信息进行确认解决;没有收到回应则等待;
- Numbering编号机制:用来解决Ack无法定位到具体的包的情况;
- Timer计时器(stop-wait协议):当丢包或错包发生时,双方都在等待Ack回应,导致deadlock死锁。于是通过计时器及时重传进行解决;并没有丢失的包被重传发生duplicate重包,通过编号机制来进行区分;
为了提高效率,产生了如下的分组发送方式:
- 累计确认:(GBN协议)分组发送时,发送n来表明接收到序号n及以前的分组;不接受任何不需要的分组;
- GoBackToN:出现超时时,发送方发送所有已发送但为确认的分组;
- 滑动窗口:为了防止分组被覆盖,若序号字段为长度N bit,窗口分组大小要小于2^N -1
当窗口很大时,使用选择重传来提高效率
- 选择重传:(RS)接收方接受所有的失序分组,接到谁确认谁,发送方根据超时选择重传;
滑动窗口:此时,为了防止无法判断是新分组还是重传,窗口分组要小于等于序号字段的一半
流量控制:发送方维护一个“接收窗口”变量,让对方了解自己还有多少可用缓存空间。
四、TCP
1 报文格式
2 byte 2 byte
Source Port No. Destination Port No.
Sequence No.//序号
Acknowledge No.//确认号
THL Resert U A P R S F Advertised Window Size//接收窗口
Check Sum Urgent Pointer//紧急指针
THL:首部长度
Check Sum:采用二进制反码求和(UDP)
R:reset 复位
S:synchronous 同步
F:final 结束
2 握手挥手
三次握手:
C -----SYN----> S
C <--SYN ACK--- S //C establish
C -----ACK----> S //S establish
四次挥手:
C -----FIN----> S //C FIN-WAIT I
C <----ACK----- S //C FIN-WAIT II
C <----FIN----- S //S CLOSE-WAIT
C -----ACK----> S //C TIME-WAIT S LISTEN
3 超时计时器
EstimatedRTT:平均往返时间 α推荐0.125
DevRTT:偏差往返时间 β推荐0.25
- EstimatedRTT = (1-α) * EstimatedRTT + α * SampleRTT
- DevRTT = (1-β) * DevRTT + β * |SampleRTT - EstimatedRTT|
- 超时间隔 = EstimatedRTT + 4 * DevRTT
4 拥塞控制
- Slow Start:慢启动,一开始很少,MSS/RTT(发送量/时延) 呈指数增长(1,2,4,8);发生丢包重新慢启动;
- 拥塞避免:指数增长到达阈值时,缓慢线性增长;
- 快速重传:收到三个冗余ACK,则快速重传,不再等待计时器超时触发重传,而后进入拥塞避免
5 SWS(silly window syndrome)糊涂窗口综合征
在通过窗口流量控制的时候,双方发送小报文(小于MSS)的一种情况。
- 发送端:发送MSS长度报文或至少接收方通告窗口一半的报文;使用Nagle算法,先发送第一个报文段,而后开始积累知道满足长度。
- 接收端:接收方不通告一个比MSS小的窗口,或者达到接收方缓存大小的一半(这个就不管MSS了)的时候才通告。
6 其他特性
- Keepalive:server端进行保活
- Persistent:当被“window size原因”拒绝后,坚持重发
- TIME WAIT:结束前时间等待,等待可能迟到的前文信息
- MSS:Max Segment Size 最大首部数据长度 536~1460B
- GBN+RS:在GBN的基础上,接收失序分组,但不做确认,只对需要分组进行ACK,发送方Go back to N重传所有分组
网络层
用于转发与路由选择,将数据报从一台主机送到另一台主机。
一、IPv4
1 传统分类
A 0*******.********.********.******** 2^7个net-id 2^24个host-id
B 10******.********.********.******** 2^14个net-id 2^16个host-id
C 110*****.********.********.******** 2^21个net-id 2^8个host-id
D 1110****.********.********.******** Multicast Address组播地址
E 11110***.********.********.******** Reserve for Future保留
- host-id全为0代表网络号,全为1是Broadcast Address广播地址
- net-id全为0 Reserve保留
2 私有地址 Private Address
不能在公网使用的地址
A 10.0.0.0 ~ 10.255.255.255 10/8
B 172.16.0.0 ~ 172.31.255.255 172.16/12
C 192.168.0.0 ~ 192.168.255.255 192.168/16
当连入公网的时候,会通过NAT(Network Address Translation)转化成公有地址
- NAT:公有私有一一对应(通常用于隐藏内部结构)
- PAT:通过改变端口号来复用ip;缺点是每次都要拆开tcp,checksum费时费力,再查看端口号
3 掩码与CIDR(Classless Inter Domain Routing无类别域间路由选择)
- 定义:连续的1与连续的0组成掩码,1的个数代表net-id长度;0个数代表host-id长度。ip&&mask == net-id网络号
- 子网划分:(CIRD)在保证net-id不变的情况加,从host-id借几个bit作为submit-id,继而通过不同的掩码来得到不同的子网
- VLSM:可变长子网掩码,来应对不同的需求
4 报文格式
4bit | 4bit | 8bit | 16bit
ver | THL | Type of Service | ITL
Identification | |D|M| Fregment offset(13bit)
TTL | Protocol Type | Check Sum
Source IP Address
Destination IP Address
THL:首部长度,用于确认数据报从哪里开始
TOS:目前未使用
ITL:数据报总长度
TTL:time to live,数据报过一个路由器,减少1
ProtocolType:上层服务协议 6-TCP 17-UDP
CheckSum:只校验首部不校验数据,2进制反码求和
D:为1标识不可分
M:为1表示后面还有后继分片
Identification:标识号
Fregment offset:偏移量
分片:
- 一个链路帧能承载的最大数据量叫做MTU帧中最大数据单元,因此需要ip报文段分片传输
- 当一个ip报文段被分成多个时,identification相同
- 偏移量要按(字节/8)计算,标识插入的数据从原始的哪一个(字节/8)开始
- 由于上一条,故分片字节一般是8的倍数
5 ICMP(Internet Control Message Protocol)
- ping时用到此协议
8字节首部
type | code | checksum(2byte) op(4byte) data
二、路由
1 路由表组成
- 网络号
- 子网掩码
- 下一跳 记录与该路由直接相连,当想要到达网络号的位置时,该走的对应的路由器的ip
2 RIP(Routing Information Protocol)
- 路由选择更新信息在邻居之间通过RIP响应报文进行“rumour谣传”,约30秒一次
- RIP—UDP(port520)—IP—Ethernet
- 度量值是距离向量
- 防环机制:当有邻居180秒没有响应,认为邻居死了,马上触发更新全网广播全网广播
- AS(自治系统)内部算法
3 OSPF(Open Shortest Path Protocol)
- 通过路由器之间互相的洪泛,来模拟出一张全网图,通过Dijkstra来计算最短路
- OSPF—IP(port89)
- 度量值是带宽
- 每当一个路由器发生状态变化,会全网广播;即使不变化,也会周期性广播自己状态
- AS内部算法
- LS(链路状态)型
洪泛:要求源节点向所有邻居发送分组的副本
受控洪泛:每个节点维护一个已经收到的、复制的、转发的短地址和广播分组列表,接收到副本时候会判断一下
4 BGP(Broder Gateway Protocol)
- BGP—TCP—IP
- AS之间算法
5 IS-IS
- 也许未来在IPv6时代会发挥作用
- LS型
三、IPv6
1 IP地址
- unicast 单播
- 全球可聚合单播地址 2:: ~ 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
- link-local链路本地 FF80::
- site-local站点本地 FFC0::
- multicast 组播
- FF02::1 链路内所有节点机
- FF02::2 链路内所有路由器
- anycast 任意播
长128bit,前64位net-id,后64位host-id
通过“::“来进行0压缩,一串IPv6不能进行两次压缩
localback(localhost) ::1
2 报文格式
每行32bit
var | traffic class | flow label
pay load |next header| hop connect limiy
SrcIP
Dest IP
next header:上层协议
hop conncet limit: ttl同理
3 PIM组播
- Dense mode:当用户密集时候,直接进行洪泛push,加入一定prune剪枝、graft嫁接
- Sparse mode:当用户稀疏时候,找到RP(汇合点)进行单独pull
4 其他相关协议
ICMPv6
- RS(port133)路由请求
- RA(port134)路由应答
- NS(port135)邻居请求 用来代替IPv4的ARP,寻找mac地址
- NA(port136)邻居应答
DHCPv6
- 路由器用来分配IPv6地址
MPLS
- 在帧后面压入一个标签,直接写出目标地址,达到fast forwarding的目的(就不用打开IP首部来看dest ip了)
网络接口层
一、概念
- 链路:从一个结点到相邻结点的一段物理线路,其中没有任何其他的交换结点
- 数据链路:物理线路上添加上控制数据传输的协议的硬件和软件
1 数据链路层
- 设备:
- switch(交换机),每一个端口都是一个单独的Collision Domain(冲突域)。所有的二层设备(switch)都在一个Boardcast Domain(广播域)里面,路由器(三层设备)隔绝广播域
- 网桥,类似交换机,但是只有两个端口连接两个单独的Collision Domain
- 功能:帧封装、帧校验与同步
- switch初始表若找不到目标mac,则全端口转发;switch可以self-learing,从source mac-address进行学习
2 物理层
- 设备:hub(集线器,只处理01比特序列),由hub连接的都在一个collision domain中
- 双绞线、光纤
- 功能:将数字或模拟数据 转化为 数字或模拟信号,数据是消息实体,信号则是在链路中传输的
- 物理层四大特性:
- 机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性:指明在接口电缆的各条线上出现的电压的范围。
- 功能特性:指明某条线上出现的某一电平的电压表示何种意义。
- 过程特性:指明对于不同功能的各种可能事件的出现顺序。
二、多路访问协议
1 PPP(Point to Point Protocol)
- 用于同步但已接收方和单一发送方
- 透明传输:可以正确传输任何bit字符,通过转移字符完成(?)
2 CSMA有碰撞检测的载波侦听多路访问
- 属于多路访问协议“信道划分、随机接入、轮流协议”中的随机接入协议
- 载波监听:LBT(listen before talk);如果本结点与其他结点同时说话,停止说话(在以太网中发送前等待51.2μs)
- 二进制指数后退:当帧经历碰撞后,随机从[1~2^n-1]中选择一个K值,结点等待K * 512bit时间
- 以太网争用期(冲突窗口):以太网端到端的往返时间2t,一般为51.2μs
三、循环冗余校验
- 原理:发送方接收方协定一个生成多项式G,长r+1个字节;发送方发送一个数据长d+CRC码长r 的数据给接收方,并保证dr连接在一起可以被G模2整除(异位)。接收方判断是否能整除,整除即正确。
- 示例:G=1001 d=101110 d XOR G = 011
即r = 011 最终发送101110 011改接收方
四、以太网帧结构
Dest MAC(6B)| Src MAC(6B)|ProtocolType| Data |CRC(4B)
MAC地址世界唯一,用于在链路上指向下一节点
广播帧时,Dest MAC全为F
- MTU:帧中最长长度字节 1500 = 1460 + 20(IP) + 20(TCP)
- 以太网速率:10Mbps
- 以太网的帧间隔时间:9.6μs = 96比特时间
五、ARP(Address Revolution Protocol)
地址解析协议,将目标IP地址对应的MAC地址解析出来。ARP协议直接封装在帧中
硬件类型2B 协议类型2B 硬件长度1B 协议长度1B OperationCode2B SrcMac6B SrcIP4B DestMac6B DestIP4B
硬件类型:以太
DestMAC:询问时全0占位;应答时正常填写
六、局域网模型
1 拓扑结构
- 星型结构:便于管理;主机负担大
- 总线型结构:线利用率高;同时只能两台交换
- 环型结构:实时性好;结点故障导致瘫痪
2 决定局域网特性的技术
- 用于传输数据的传输介质。
- 用以连接各种设备的拓扑结构。
- 用以共享资源的介质访问控制方法(MAC)。
3 IEEE802局域网体系结构模型
用于局域网共享介质,所以分成两个子层
- LLC:负责向其上层提供服务
- MAC:数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等
七、数据编码格式
- 数字数据的模拟信号编码:FSK/ASK/PSK『宽带数据的调制方式』
- 数字数据的数字信号编码:Manchester Coding
- 模拟数据的数字信号编码:PCM
以上是关于[其他]计算机网络-自顶向下方法 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章