计算机网络知识小结
计算机网络体系结构
IP网际协议
IP协议位于网络层,提供的是不可靠,无连接的 数据报传送服务。
不可靠:当发生某种错误,IP协议会丢弃该数据报。传输可靠性靠上层协议提供。
无连接:IP数据报可以不按发送顺序接受,对每个数据报处理是相互的。
-
所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。
-
普通的IP数据报报头长度为20字节(除非有选项字段)。
-
服务类型(8位)(TOS):最小时延、最大吞吐量、最高可靠性、最小花费。
-
IP数据报总长度:65535字节(16位)。
-
生存时间(TTL):8位,数据报经过的最多路由器个数。
-
ipv4规定IP地址长度32位,ipv6规定IP地址长度为128位。
-
A类IP地址范围:1.0.0.0 --- 127.255.255.255
B类IP地址范围:128.0.0.0 --- 191.255.255.255
C类IP地址范围:192.0.0.0 --- 223.255.255.255
网络层其他协议
-
ARP:IP——>MAC
电脑和路由器中都有一个ARP缓存表,保存最近20分钟与自己有过通信的主机的IP地址和MAC地址的对应关系。
当主机通过数据链路发送数据的时候,IP数据报会先被封装为一个数据帧,而MAC地址会被添加到数据帧的报头。 -
ARP代理:源主机——>路由器——>目的主机
路由器返回MAC地址给源主机,两个物理网络可以使用相同的网络号。 -
RARP :MAC——>IP。 RARP请求以广播方式传送,而RARP应答一般是单播传送。
-
ICMP:ICMP报文组成:8位错误类型、8位条件代码、16位校验和,被封装在一个IP数据报中。
-
基于ICMP协议的两个工具:ping、traceroute
-
IGMP:管理多播组成员的一种协议。作用在于让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。
传输层
UDP(User Datagram Protocol)
-
传输层提供应用进程间的逻辑通信。
-
通过端口把数据传到相应的进程。(端口号:0~65535)
0~1023为系统端口号(www.iana.org)
1024~49151为登记端口号
49152~65535为短暂端口号 -
UDP特点:面向报文、无连接(相比TCP减少了开销和时延)、尽最大努力交付、无拥塞控制、支持一对一 一对多 多对一 和多对多的交互通信。
-
UDP数据报 = UDP报头(8字节)+ 应用层数据
UDP报头=源端口(2字节)+目的端口(2字节)+长度(2字节)+校验和(2字节)
TCP(Transmission Control Protocol)
- TCP面向字节流,传输数据单元是报文段。
报文段结构: 报头(20字节固定部分+4n字节应需添加)+数据部分
- 三次握手:传输TCP报文段创建连接的过程。
释放连接(四次挥手):
- TCP的特点:
① 报文段长度可变,根据收发双方缓存状态和网络状态调整。
② 收到另一端的数据将发送一个确认。发送一个段后启动定时器,超时重传。
③ 报文段有差错丢弃该报文段,等待超时重传。
④ TCP将数据按字节排序,报文段中有序号。
⑤ TCP提供流量控制。收发双方都有收发缓存。
超时重传机制:接收者收到数据报文段后需回复一个确认报文段,超时重发。
- 连续ARQ协议
为改进超时重传的传输效率,真实情况是采用流水线传输——累积确认方式。
- 流量控制和拥塞控制
窗口:报文段首部的一个字段,用于告知对方自己的接收窗口,其大小可变化。
对拥塞控制的控制总结:慢启动、加性增、乘性减。
慢启动:初始窗口值很小,按指数规律渐长,直到达到慢开始门限(ssthresh)。
加性增:达到门限后,每发一个报文段窗口值加一个单位量。
乘性减:出现超时即将窗口值减小一半。
应用层协议
DNS(Domain Name Service 域名服务)
基于UDP,端口号53。
DNS服务器:
1)根DNS服务器:编号A~M(13台),大部分在美国。
2)顶级(TLD)DNS服务器:负责com、org、edu、cn、uk、jp等顶级域名。
3)权威DNS服务器:大型组织、大学、企业的域名解析服务。
4)本地DNS服务器:与主机最近的DNS服务器。
域名解析方式:迭代查询、递归查询
DNS报文: 主机向DNS服务器发出的查询。
域名解析优先顺序(查询顺序):DNS缓存——> host文件——>DNS服务器
FTP(File Transfer Protocol)
基于TCP,使用端口号20(数据)和21(控制)。
主要功能:减少或消除在不同操作系统下处理文件的不兼容性。
传输方式:ASCII传输方式、二进制数据传输模式。
采用客户端——服务器的方式,两者建立两个TCP连接:21号端口建立控制连接,20号端口建立数据连接。
HTTP(HyperText Transfer Protocol)
基于TCP,使用端口号80或8080。
浏览器上网原理:
- 点击链接后,浏览器向服务器发起TCP连接。
- 连接建立,浏览器发送HTTP请求报文,服务器回复响应报文。
- 浏览器将响应报文显示在网页上。
- 报文收发结束,关闭TCP连接。
HTTP报文 = 开始行 + 首部行 + 实体主体
1)开始行:区分请求报文和响应报文。请求行/状态行
2)首部行:说明浏览器、服务器和报文主体的信息。
- 实体主体:请求报文不用,有些响应报文不用。
响应报文的状态码:3位数字,5类33种:
1xx :通知信息,例如:收到或正在处理。
2xx :成功接收。
3xx :重定向。
4xx :客户差错。如404表示网页未找到。
5xx :服务器差错。如502 Bad GateWay。