计算机网络 (韩立刚)
第一章:计算机网络概述
TCP/IP协议和OSI参考模型
计算机网络的性能:
- 速率:连接在计算机网络上的主机在数字信道上传送数据位数的速率,也成为bit rate
- 带宽:数字信道所能传送的最高数据率
- 吞吐量:单位时间内通过某个网络的数据量;单位 b/s, Mb/s等
- 时延:包括四个方面,发送时延、传播时延、处理时延、排队时延
- 时延带宽积:实际意义就是线路上的数据量
- 往返时间:从发送方发送数据开始,到发送方收到接收方确认(ipconfig命令可以查ip地址和网关)
- 利用率
第二章:物理层
数据通信的基础知识:
- 信道:单向通信、双向交替通信(半双工通信)、双向同时通信(全双工通信)
- 基带信号和带通信号:长距离用带通信号
- 信道的极限容量:
- 奈氏准测:
- 信噪比:
- 香农公式:
物理层下面的传输媒体
- 非导向传输媒体:微波、短波通信
- 物理层设备:集线器(一个大的冲突域)
信道复用技术
- 频分复用FDM:先调制再解调
- 时分复用TDM:
- 统计时分复用:
- 波分复用:就是光的频分复用
数字传输系统
宽带接入技术
- ADSL:用频分复用的方法
- 光纤同轴混合网HFC
- 光纤入户
第三章:数据链路层
数据发送模型
数据链路层的数据类型
点对点信道、广播信道
链路与数据链路
帧
数据链路层传送的是帧
帧:数字链路层将网络层的信息加上【帧头】【帧尾】【物理层地址】【校验值】,交给物理层
数据链路层的三个基本问题:
封装成帧
透明传输
差错控制
可靠传输由传输层实现;数据链路层负责无差错地接收
利用循环冗余检验,增加一个帧检验序列
PPP协议(应用于点到点地数据链路层)(广义网)
点对点协议(Point-to-Point Protocol)
CSMA/CD(广播信息地数据链路层)(局域网)
Carrier Sense Multiple Access with Collision Detection
载波监听 多路访问
共享通信媒体
- 静态划分信道:频分复用;时分复用;波分复用;码分复用
- 动态媒体接入控制(多点接入):随机接入;受控接入
以太网
严格地说,指符合DIX Ethernet V2 标准的局域网
只要满足载波监听 多路访问都可以算是以太网
802委员会将局域网的数据链路层拆分成两个子层:LLC子层和MAC子层,现在基本只有MAC子层
集线器的结构:
MAC层的硬件地址(MAC地址)
在局域网中,硬件地址又称为物理地址,或MAC地址
一共48位,IEEE向厂家分配前三个字节即高位24位,剩下24位由厂家自行指派
扩展以太网
- 距离上扩展:用光纤
- 在数量上扩展:变成一个更大的冲突域。
优化以太网
可以用网桥来优化,将集线器接上网桥
而现在都使用交换机
交换机的特性:端口带宽独享、安全、基于MAC地址转发、通过学习构建MAC地址表
第四章:网络层
负责在不同网络之间尽力转发数据包,如果丢失,不负责重传,不负责顺序
基于数据包的IP地址转发
发送数据的过程:
子网掩码用来看网段;网关用来获取路由器的MAC地址(如果通信在不同网段,需要经过路由器,否则不需要通过路由器)
IP地址指明了起点和终点,Mac地址指明了下一跳的位置。
集线器不能看懂Mac地址,而交换机能够看懂Mac地址,我们称交换机工作在数据链路层的设备。
一个数据传输的总过程:
应用层想要把一个数据传给另一个ip地址的应用层,传输层将数据分段,然后网络层加上ip地址,形成数据包,数据链路层形成数据帧,数据帧中包括了物理mac地址,集线器和网线都是物理层设备,交换机能够看懂mac地址,是二层设备,路由器能够看懂ip地址,是网络层设备。
网络协议:
ARP协议:
将ip地址通过广播,目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的MAC地址
只能解析本网段。不能跨国路由器,路由器隔绝广播。
扩展:ARP欺骗、软件:网络执法官、软件:P2P终结者
如果一个局域网中,所有的计算机、网关都知道其他的MAC地址,就不需要ARP协议了。
总结:ARP协议就是直到本网段的一个IP地址,发一个广播,全部设备都能接收到广播,目标计算机反馈,我就知道了目标计算机的MAC地址,在进行通信。
ICMP协议(网际控制报文协议):
用来进行检测,最常用的命令是ping命令
PING(Packet Internet Grope),因特网包探索器,用来测试网络连接量的程序。
TTL:生存周期,当TTL减少到0,包就灰飞烟灭了,防止数据包在网络中循环,占据带宽。
TTL在不同系统中发包的初始设定不同:Linux 64;Windows 128; Unix 255;
ping 10.7.1.53 -t 【一直ping】
ping -l 200 10.7.1.53【改数据包的大小】
ping 10.7.1.53 -l 200【跟上个一样的】
ping 8.8.8.8 -i 2 【更改数据包TTL时间,能够跟踪数据包途径的路由器】
pathping 【跟踪数据包路径 计算丢包情况】
tracert【Windows上跟踪数据包路径的命令】
tracerouote【在路由器上跟踪数据包路径的命令】
IGMP协议:
看下游是否有绑定多播地址的计算机,如果有,向上游要求多播数据包。
ip数据包
帧的数据部分最大长度为1500字节,数据包在链路层来看就是数据。所以如果网络层的数据包不想在链路层被分片,长度最大为1500字节,数据包的首部长度为20个字节,故不想分片的话,网络层的数据部分最长为1480字节。
IP协议:
是个统称,我们称,能够使得路由器自己学习生成路由表的协议都是IP协议。
路由表分为动态路由和静态路由。静态路由是管理员告诉的,动态路由是路由器根据IP协议自己学习的,到哪个网段怎么走。
静态路由:
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
静态路由的缺点:适合于小规模网络,不能够自动调整路由。
动态路由:
RIP协议,周期性广播路由表,跳数,30秒更新一下路由信息。最大跳数 15跳
OSPF协议:标准是带宽,
网络畅通的条件:
数据包有去有回。
第五章:传输层
传输层就两个协议:TCP 和 UDP
TCP(Transmission Control Protocol)传输控制协议
UDP(User Data Protocol)用户数据报协议
TCP:需要将要传输的文件分段 传输 建立会话 可靠传输 有流量控制功能
UDP:一个数据包就能够完成数据通信,不分段,不需要建立会话,不需要流量控制,不可靠传输
(UDP也应用于 多播 广播,虽然也是多个数据包)
cmd命令,可以检验本机各端口的网络连接情况:netstat -n
cmd命令,可以查看建立会话的进程:netstat -nb
传输层协议和应用层协议之间的关系:
常见的应用层协议使用的端口:
http = TCP + 80
https = TCP + 443
RDP = TCP + 3389
ftp = TCP +21
共享文件夹 = TCP + 445
SMTP = TCP + 25
POP3 = TCP +110
telnet = TCP +23
SOL = TCP +1433
DNS = UDP +53
服务和应用层协议之间的关系:
服务使用TCP或UDP的端口侦听客户端请求
客户端使用IP地址定位服务器 使用目标端口 定位服务
可以在服务器网卡上设置只开放必要的端口 实现服务器网络安全
传输层的功能:
传输层功能:为相互通信的应用进程提供了逻辑通信
传输层协议和网络层协议的区别:
端口
三类:
1、熟知端口:0~1023
2、等级端口号:1024~49151
3、客户端口号:49152~65536
UDP协议:
UDP的首部形式:
TCP协议:
TCP是面向连接的传输层协议
TCP是点对点的通讯
TCP提供可靠交付的服务
提供全双工通信
面向字节流
每一条TCP连接有两个端点,TCP连接的端点叫做套接字。
套接字:端口号拼接IP地址。socket = (IP地址:端口号)
可靠传输的工作原理:
总结:只要你没告诉我你收到了,我就认为你没收到,我就要重发
如何提高信道利用率呢:流水线传输
怎么保证可靠性呢:滑动窗口技术
TCP报文段的首部格式:
URG:如果标记上1,在TCP缓存中插队,先走。
ACK:如果是零的话,确认号无效,如果是1,确认号有效
PSH:到web服务器中,优先从缓存中出去,提交给应用程序
RST:TCP会话产生了严重的问题,释放连接,RST变为1,拒绝通话
SYN:同步的时候用到,syn=1说明是一个请求的数据包
FIN:通话结束的时候,变成1,释放连接
流量控制是通过通过调整接收窗口大小来实现的。
一个例子:
目标端口,源端口,序号,确认号,数据。
三次握手: