计算机网络知识点
ISP: Internet Service Provider
接入网络
- 数字用户线路(DSL),也就是通过电话线->调制解调器,通过频分复用传输数据。不同的频率承载不同的信息。50KHZ-1MHZ用于下行,4kHZ-50kHZ用于上行,0kHZ-4kHZ用于电话。
- 电缆网络,利用频分复用,不同的频率对应不同的频道。其他的没有用到的频率可以用来传输网络数据。非独占,多用户共享。
网络核心
功能:路由+转发
路由:根据路由算法确定传输路径(本地转发表)。
转发:将分组从路由器的输入端口交换至正确的输出端口。
多路复用
数据交换
电路交换
建立电路->开始通信->拆除电路
参考打电话,同一时间只能有一个用户占用电路资源。作为网络交换时,若要实现共享,则要借助多路复用技术。
–频分多路复用
用户占用不同的带宽(频率),分配到一个频带后,始终占用。
–时分多路复用
将时间划分为时分复用帧。每个用户占用帧里面的一个时隙,周期性的发送数据。
–波分多路复用
按照光的波长来划分用户。
–码分多路复用
每个用户分配一个码片序列。所有用户共享一个无线链路,用户数据编码后传输。
编码信号 = 原始信号 × 码片序列 //发送的是码片序列或者反码表示0或1
各用户码片序列必须正交。
解码:码片序列与编码数据的内积。
报文交换
报文:应用发送信息的整体。比如:一个文件。
分组交换
分组:报文拆分出来的一系列小的数据包。
分组交换需要报文的拆分和重组。
链路共享方式为统计多路复用。发的多用的多。
计算机网络体系结构模型
OSI参考模型
应用层 — HTTP, FTP, SMTP
表示层 --处理两个系统间数据交换的语法语义
会话层 --插入控制标记
传输层 —报文分段和重组,确保送给正确的端口。根据头部信息实现多路复用。分用。
网络层 —决定发送到哪个网络
数据链路层 —决定发送到当前链路的哪个物理地址,比如发送给路由器。
物理层
TCP/IP参考模型
HTTP … SMTP
TCP UDP
IP
网络接口
5层参考模型
应用层
–FTP,HTTP,SMTP
传输层
–进程的数据传输 TCP/UDP,提供进程之间的逻辑通信机制。根据头部信息实现多路复用。分用。
网络层
–IP协议,路由协议,决定去哪个网络,提供主机之间的逻辑通信机制。
每个路由器应该维护一个转发表,并通过路由算法确定端到端的路径。
TCP使用数据报网络,在网络层是无连接的,发送的包不会按顺序到达。
数据报网络根据路由协议建立转发表,检索转发表,每个分组独立选路。
转发表根据地址范围进行转发。
数据链路层
–相邻网络元素,决定去哪个路由器转发
物理层
–传输比特数据
在5层参考模型中,发送端和接收端需要实现5个层次的协议。交换机只用实现最后2层,路由器要实现后面3层。
由此可以看出交换机和路由器的差异。
INTERNET提供的传输服务
TCP
面向连接
可靠的,按序的传输
流量控制
拥塞控制
流水线协议:允许发送方在收到ACK之前发送多个分组。
TCP使用累积确认。
TCP使用单一重传定时器。
滑动窗口协议:窗口指允许发送的序列号范围,可以用来管理没有确认的消息,随着消息确认,窗口向前移动。
快速重传机制:如果发送方收到对同一数据的3次ACK,则假定该数据后面的报文丢失,会在超时时间之前重传。
TCP流量控制:
接收方为TCP连接分配buffer,上层应用可能处理buffer中的数据较慢,若发送方传送过快,则会导致接收方buffer溢出,数据丢失。
接收方会将自己buffer的剩余空间在报文中告诉发送方。发送方会限制自己已发送但还未收到ACK的数据不超过接收方的buffer。
TCP建立连接三次握手:
- 客户端发送 TCP SYNC报文段给服务器。选择初始序列号,SYN = 1。
- 服务器回复 SYNACK给客户端,分配缓存,选择初始序列号,告知客户端,SYN = 1。
- 客户端收到SYNACK,回复ACK,可以包含数据,SYN = 0。
在握手第二步服务器会为连接分配缓存。如果没有收到客户端的ACK,该缓存会保留一段时间再被清理掉。如果有数千万台客户端同时请求TCP连接,但是不回复第三次的ACK,服务器会瘫痪。此乃网络攻击。
TCP连接关闭:
- 客户端向server发送FIN控制报文段。
- server收到FIN控制报文段,回复ACK,并通知应用层。
- server发送FIN。
- client收到FIN,回复ACK。
- server收到ACK,连接关闭。
拥塞控制区别于流量控制,前者着眼于整个网络,后者着眼于自身。
拥塞控制表现:分组丢失,分组延迟过大。
拥塞的代价:会有更多的重传,造成资源浪费。当分组被丢弃时,用于该分组的上游传输能力被浪费。
TCP通过观察delay,lose等网络行为判断是否拥塞(3个重复的ACK或者timeout)。timeout意味着更严重的拥塞。通过慢启动避免拥塞,即发送速度越来越快。
UDP
无连接
不可靠数据传输
有简单的错误校验。
- 因为无需连接,因此实时性很强。
- 实现简单,无需维护连接状态。
- 头部开销少。
- 没有拥塞控制,应用可以更好的控制发送时间和发送速率。
IP
寻址规约,数据报分组格式,分组处理规约。
MTU:最大传输单元。每个网络的最大传输单元不同,若分组超过下个链路的最大传输单元,路由器可以进行分片。取决于某个关键字。若不能分片,则丢弃分组,并返回ICMP报文。路由器只管分片,不管组装。目的主机负责组装。
IP地址分为网络号(高比特位)和主机号(低比特位)。和子网掩码按位做与运算可以得到网络号。
IP子网:IP地址具有相同网络号的设备接口,在同一子网内可以不跨越路由器进行通信。
ICMP
在IP分组传输过程种提供差错报告。一般来说实现了IP协议同时也要实现ICMP协议。
HTTP协议
应用层协议,C/S结构。
传输层使用TCP协议。
HTTP协议是一个无状态协议,服务器不维护任何客户端过去所发送请求(行为)的信息。不用维护额外信息,代价不高。
FMTP协议
使用TCP进行可靠传输。
端口25.
DNS(Domain name system)
解决internet上主机,路由器的识别问题。
负责域名和IP地址的映射。
采用分布式层次数据库提供服务。
每个ISP(网络服务提供商)有一个本地域名服务器,当主机进行DNS查询时,查询被发送到本地域名服务器,然后作为代理将查询发送给层级服务器。