Nobody no why, it just works!
by Qijd
一以单计算机为中心的联机终端系统
二以通信子网为中心的主机互联
三计算机网络体系结构标准化
资源子网与通信子网构成计算机网络
端系统通过 因特网服务提供商 ISP(InternetServiceProvider)接入因特网
端系统、分组交换机和其他因特网部件通过protocol进行信息的接收和发送
时延宽带积 == 链路容量
其中,Internet采用的是分组交换
由ISOC(Internet society)定制协议
layer model层次模型
TCP/IP参考模型
应用层 application 应用程序及应用层协议存留 分组称为报文
运输层 transmation 端到端的管理 分组称为报文段segment
网络层 internet 寻址,将数据报从一台主机运输到另一台主机 分组称为数据报dataram
数据链路层 datalink 将分组从一个结点移到另一个结点 分组称为帧
物理层 physical 数据转化信号,将帧中的bit数据一个一个地移动到下一个结点
OSI/RM参考模型
应用层
表示层 解释交换数据的含义
会话层 提供数据交换定界与同步
运输层
网络层
链路层
物理层
每一层协议向上一层的协议提供服务
他具有结构化概念化的优点。模块化使系统组件更新更为容易
TCP: Transmation Control Protocol
UDP: User Datagram Protocol
IP: Internet Protocol
DNS: Domain Name Server
ARP: Address Resulation Protocol
GET /page.html HTTP/1.1 //方法字段、URL字段、HTTP版本字段
HOST: bjfu.edu.cn //指明主机
Connection: close //是否开启持续连接
User-agent: Mozilla/5.0 //用户代理,即浏览器类型
Accept-language: cn
第一行叫请求行,后继行叫首部行
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
一个初始状行,六个首部行
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
Quoted-Printable也是MIME邮件中常用的编码方式之一。同Base64一样,它也将输入的字符串或数据编码成全是ASCII码的可打印字符串。
标识符2 标志2
问题数2 回答RR数2
权威RR数2 附加RR数2
问题 //包含正在查询的信息,名字与类型(A、MX等)
回答 //答复IP地址
权威
附加信息
前12个字节是首部区域(2代表2byte)
标识符唯一标志查询,用于匹配
标志0代表查询,1代表回答
权威1代表权威DNS服务器
附加数啊表示希望递归(查询)或递归可用(答复)
FQDN: 全称域名 主机名+全路径
PQDN: 正式域名
source port(2B) | destination port(2B)
total length(2B) | check sum(2B)
报文段(<=535B)
发送方对报文段中所有(3个)16bit字进行求和,最终结果进行反码运算。加法溢出位要放到最低位进行回卷。这成为校验和。
接收方将四个16bit字进行求和(仍然回卷),如果不全为1,则出现差错。
伪首部:
32位源IP地址、32位目的IP地址、8位填充对齐、8位协议、16位UDP长度。通过伪首部的IP地址检验,UDP可以确认该数据报是不是发送给本机IP地址的;通过伪首部的协议字段检验,UDP可以确认IP有没有把不应该传给UDP而应该传给别的高层的数据报传给了UDP。
为了提高效率,产生了如下的分组发送方式:
当窗口很大时,使用选择重传来提高效率
滑动窗口:此时,为了防止无法判断是新分组还是重传,窗口分组要小于等于序号字段的一半
流量控制:发送方维护一个“接收窗口”变量,让对方了解自己还有多少可用缓存空间。
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 结束
三次握手:
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
EstimatedRTT:平均往返时间 α推荐0.125
DevRTT:偏差往返时间 β推荐0.25
在通过窗口流量控制的时候,双方发送小报文(小于MSS)的一种情况。
用于转发与路由选择,将数据报从一台主机送到另一台主机。
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保留
不能在公网使用的地址
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)转化成公有地址
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:偏移量
8字节首部
type | code | checksum(2byte)
op(4byte)
data
洪泛:要求源节点向所有邻居发送分组的副本
受控洪泛:每个节点维护一个已经收到的、复制的、转发的短地址和广播分组列表,接收到副本时候会判断一下
长128bit,前64位net-id,后64位host-id
通过“::“来进行0压缩,一串IPv6不能进行两次压缩
localback(localhost) ::1
每行32bit
var | traffic class | flow label
pay load |next header| hop connect limiy
SrcIP
Dest IP
next header:上层协议
hop conncet limit: ttl同理
Dest MAC(6B)| Src MAC(6B)|ProtocolType| Data |CRC(4B)
MAC地址世界唯一,用于在链路上指向下一节点
广播帧时,Dest MAC全为F
地址解析协议,将目标IP地址对应的MAC地址解析出来。ARP协议直接封装在帧中
硬件类型2B 协议类型2B 硬件长度1B 协议长度1B OperationCode2B SrcMac6B SrcIP4B DestMac6B DestIP4B
硬件类型:以太
DestMAC:询问时全0占位;应答时正常填写
用于局域网共享介质,所以分成两个子层