计算机网络
五层协议
应用层协议:DNS HTTP SMTP
运输层协议:TCP(连接)UDP(无连接)
网络层协议:路由协议 IP协议(无连接)
数据链路层:CSMA/CD协议 PPP协议
物理层:传递信息所用的物理媒体不属于物理层(双绞线,同轴电缆,光缆)
物理层
主要任务:确定与传输接口有关的一些特性,(如集线器工作在物理层)
数据链路层
-
点对点信道和广播信道 ppp协议(点对点信道协议) CSMA/CD 协议(广播信道协议)
-
三个基本问题:封装成帧 透明传输 差错检测
-
以太网MAC层的硬件地址
-
适配器 转发器 集线器 网桥 以太网交换机的作用以及使用场合
链路
从一个结点到相邻节点的一段物理线路,中间没有任何其他的交换点
数据链路
除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成数据链路。最常用的方法是使用网络适配器,一般网络适配器都具有网络链路层和物理层的功能。
封装成帧
在一段数据前后分别添加首部和尾部,这样就构成了一个帧
帧定界符
首部和尾部的一个重要作用就是进行帧定界,控制字符SOH(start of head)放在一帧的最前面,表示帧的首部开始,另外一个控制字符EOT(end of transmission)表示帧的结束,SOH十六进制编码是01,EOT十六进制编码是04。
帧定界符的作用:判断收到的帧是否完整,不完整则丢弃。
透明传输
无论什么样的比特组合数据,都能够按照原样没有差错的通过这个数据数据链路层。
-
当传送的帧是由文本文件组成时,其数据部分不会出现像SOH EOT这样的帧界定符,不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输
-
但当数据部分是非ASCII码的文本文件时,如果数据中的某个字节的二进制代码和SOH EOT这种控制字符一样,数据链路层就会错误的以为找到了桢的边界,把部分帧收下,剩余丢弃,这种传输就不是透明传输
-
解决不是透明传输的办法(使数据中可能出现的控制字符EOT SOH在接收端不被解释为控制字符):字节填充 字符填充
-
字节填充 /字符填充:发送端的数据链路层在数据中出现控制字符“SOH"和”EOT“的前面插入一个转义字符”ESC“,而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符,如果转义字符也出现在数据中,那么解决办法仍然是在转义字符前插入一个转义字符。
差错检测
比特差错
比特在传输时会出现差错,1可能会变为0,0可能会变为1
循环冗余校验
原理:在发送端,先把数据划分为组,假定每组k个比特,若传输一组数据M=101001(k=6),在M后添加供差错检测用的n位冗余码后一起发送,共发送(k+n)位,接收方用收到的数据除P(长度为n+1),若余数为0则表示没有差错
冗余码
为了检错而添加的冗余码常称为帧检验序列FCS
PPP 点对点协议
ppp协议就是用户计算机和ISP进行通信时所使用的数据链路层的协议。ppp的帧首部和尾部分别为四个字段和两个字段,首部的四个字段为0x7E,尾部的两个字节是7E
字节填充
异步传输时,把转义字符定义为0x7D,并使用字节填充
-
把信息字段出现的每一个0x7E转变成2字节序列(0x7D,0x5E)
-
若信息字段出现一个0X7D的字节(即出现和转义字符一样的比特组合),则把0x7D转变成2字节序列(0x7D,0x23)
-
若信息字段出现ASCII码的控制字符,则在字符前面加入一个0x7D字节
零比特填充
同步运输时,采用零比特填充来实现透明传输
具体做法:只要有5个连续的1,就立即填入一个0,因为标志字符F的二进制是111111,接收端在收到一个帧时,先找到标志字符F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描,当发现5个连续的1时,会将5个1后面的0删除,而不会引起对帧边界的错误判断
CSMA/CD协议
-
共享信道方法
静态划分信道:频分复用,时分复用,波分复用,码分复用(用户只要分配到了信道就不会和其他的用户冲突,代价较高,不适合局域网)
动态媒体接入控制/多点接入:分为随机接入和受控接入
随机接入:所有的用户可以随机的发送信息,但是如果恰恰有两个用户同时发送信息,那么共享媒体就会发生碰撞,使得用户发送失败(以太网属于随机接入)
受控接入:用户不能随机发送信息,必须服从一定控制(在局域网中使用较少)
适配器的作用
计算机和外界局域网的连接是通过通信适配器进行的,适配器和局域网之间的通信是通过电缆或双绞线以串行传输的方式进行的,适配器和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行的
-
适配器要进行数据串行传输和并行传输的转换
-
适配器包含了网络层和物理层两个层次的功能
CSMA/CD
意思是载波监听多点接入/碰撞检测,有以下要点:
-
多点接入:说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上
-
载波监听:载波监听就是监听信道,不管是在发送前还是发送中,每个站都必须不停的检测信道,发送前检测信道是为了获得发送权,如果检测到有其他站在发送,自己则暂停发送,必须等到信道变空闲的时候才能发送信道,发送中检测信道是为了及时发现有没有其他站的发送和本站发送的碰撞,这称为碰撞检测
-
碰撞检测:也称为边发送边监听,适配器边发送数据边检测信道上的信号电压变化,判断自己在发送数据的时候其他站点是否也在发送数据,当几个站点同时在信道上发送数据时,总线上的信号电压变化幅度就会增大,当适配器检测到的信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,,一旦发现碰撞,适配器就要停止发送数据,然后等待一段时间再发送。
-
在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道),因此使用此协议的以太网不能进行全双工通信,而只能进行双向交替通信(半双工通信)
扩展的以太网
在物理层扩展以太网
-
扩展以太网的覆盖范围,扩展主机和集线器之间的距离的一种简单的方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器
-
光纤调制解调器的作用:进行电信号和光信号的转换。由于光纤带来的时延很小,带宽很宽,因此很容易使主机和几公里外的集线器相连接
在数据链路层扩展以太网
-
网桥:对收到的帧根据其MAC帧的目的地址进行转发和过滤
-
以太网交换机:实质上是一个多接口的网桥
虚拟局域网(VLAN)
利用以太网交换机可以很方便的实现虚拟局域网
虚拟局域网:是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段都有一个共同的需求
网络层
-
虚拟互连网络的概念
-
ip地址与物理地址的关系
-
传统的分类的IP地址和无分类域间路由选择CIDR
-
路由选择协议的工作原理
虚拟互连网络
-
将网络互相连接起来需要一些中间设备,有以下四种不同的中间设备
-
物理层的中间设备叫做转发器(中继器,集线器)
-
数据链路层的中间设备叫网桥或者桥接器(交换机)
-
网络层使用的中间设备为路由器
-
在网络层及以上的中间设备叫网关
分类的IP地址
IP地址是给主机或路由器的接口所分配的标识符,将IP地址划分为若干个固定类,A B C类都由两个固定长度的字段构成,其中第一个字段是网络号(标志着主机所连的网络),第二个字段是主机号标志着该主机(或路由器)
-
两级IP地址可以记为:IP地址={<网络号>,<主机号>}
-
以下是各种IP地址的网络号字段和主机号字段,这里A B C 类地址都是单播地址,D类为多播地址
-
为了提高可读性,IP地址的每八位加一个点,叫做点分十进制法,如:192.168.1.1
-
用转发器和网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都有相同的网络,具有不同网络的局域网必须使用路由器连接起来
IP地址和硬件地址
-
硬件地址是数据链路层和物理层使用的地址,而IP地址是网络层及以上各层使用的地址,是一种逻辑地址
地址解析协议 ARP
知道一个机器的IP地址,需要找出相应的物理地址(在主机高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新)。ARP是解决同一个局域网上的主机和路由器的IP地址和硬件地址的映射关系,如果不在一个局域网上则无法解析出另一个主机的硬件地址。
划分子网
-
从两级IP到三级IP的做法叫做划分子网
-
划分子网:从网络的主机号借用若干位作为子网号,两级IP变为三级IP,记法如下:
IP地址={<网络号>,<子网号>,<主机号>}
-
网络地址:子网掩码和IP地址进行逐位相“与”运算
无分类编址CIDR(无分类域间路由选择)
-
消除了传统的A B C类地址以及子网的划分,将IP地址分为前后两部分,前面部分是“网络前缀”,后面是主机
-
CIDR使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上"/",后面写网络后缀所占的位数
-
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
路由聚合/构成超网
由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络,这种地址的聚合常称为路由聚合也叫构成超网(网络前缀相同)
路由器的构成
-
路由器是一种具有多个输入端口和多个输出端口的专业计算机
-
路由器结构可分为两大部分:路由选择部分和分组转发部分
-
分组转发部分:交换结构,一组输入端口和一组输出端口
路由选择协议
-
在目前的互联网中,一个大的ISP就是一个自治系统。这样,互联网就把路由选择协议分为两大类: 1.内部网关协议(IGP):即在一个自治系统内部使用的路由选择协议,如RIP OSPF
2.外部网关协议(EGP):若源主机和目的主机处于不同的自治系统中(这两个自治系统可能使用不同的内部网关协议)
3.自治系统之间的路由选择叫做域间路由选择,在自治系统内部的路由选择叫做域内路由选择
IPV6
IPV6的由来和特点
由于IPV4的地址已经耗尽,于是有了IPV6的产生,从IPV4的32位增大到4倍,即增大到128位
1, IPV6有128位,八字节对齐,一个字节16位,
2, 使用冒号十六进制记法,例如:
104.230.140.100.255.255.255.255.0.0.17.138.150.10.255.255用这个记法变成
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
3,可以允许零压缩,即一串连续的零可以为一对冒号所取代,例如:FF05:0:0:0:0:0:0:B3可压缩为FF05::B3,但是任一地址只能使用一次
双协议栈
指完全过渡到IPV6前,是一部分主机(或路由器)装有双协议栈:一个IPV4和一个IPV6,因此双协议栈既能和ipv4的系统通信也能和IPV6的系统通信。双协议栈的主机(或路由器)记为IPV6/IPV4,表明他同时具有两个地址:一个IPV6地址和一个IPV4地址
双协议栈主机在和IPV6主机通信时采用IPV6地址,和IPV4主机通信时采用IPV4地址,通过使用域名系统DNS来查询目的主机采用的地址,若DNS返回的是IPV4地址,双协议栈的源主机就使用ipv4地址,反之使用Ipv6地址
隧道技术
在Ipv6数据报要进入IPV4网络时,把IPV6数据报封装成IPV4数据报
虚拟专用网VPN
利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又叫虚拟专用网VPN,之所以叫专用网是因为这种网络是为本机构的主机内部的通信,而不是用于和网络外非机构的主机通信
-
对于仅在机构内部使用的计算机,让计算机使用仅在本机构有效的IP地址(这种地址称为本地地址),而不需要向互联网管理机构申请全球唯一的IP地址(这种地址称为全球地址),以下为专用地址:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
采用这样的专用IP地址的互连网络称为专用互联网或本地互联网
-
在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发
-
如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密要求,那么所有通过互联网传送的数据都必须加密,
网络地址转换NAT
在专用网内部的一些主机已经分配到了本地IP地址,但是又想和互联网上的主机通信,可以使用网络地址转换,这种方法需要在专用网连接到互联网的路由器上安装NAT软件。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网相连,
运输层
-
运输层为相互通信的应用进程提供逻辑通信
-
端口和套接字的意义
-
无连接的UDP特点
-
面向连接的TCP特点
-
在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议
-
TCP的滑动窗口,流量控制,拥塞控制和连接管理
进程之间的通信
-
当网络边缘部分中的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而路由器只有下三层的功能
-
运输层复用和分用的功能,
复用:在发送方不同的应用进程 都可以使用同一个运输层协议传送数据,例如:应用层所有的应用进程都可以通过运输层再传到IP层;
分用:接收方的运输层在剥去报文的首部后能把这些数据正确交付目的应用进程,例如:运输层从IP层收到发送给各应用进程数据后,必须分别交付指明的各应用进程。
-
运输层为应用进程之间提供端到端的逻辑通信
-
当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信就相当于是一条全双工的可靠通信,但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道
TCP协议
-
提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后再释放连接。
-
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
-
TCP提供可靠交付的服务。通过TCP连接的数据,无差错不丢失不重复,并且按序到达
-
TCP提供全双工通信
-
面向字节流
-
TCP不提供广播或多播服务。
-
由于TCP要提供可靠的,面向连接的运输服务,因此不可避免地增加了许多开销,如:确认,流量控制,计时器和连接管理。
UDP协议
-
在传送数据之前不需要先建立连接
-
UDP使用尽最大努力交付,即不可靠交付
-
UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层,UDP对应用层交下来的报文不合并也不拆分,而是保留这些报文的边界。
-
UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。
-
UDP支持一对一,一对多,多对一和多对多的交互通信
-
UDP的首部开销小
-
远地主机运输层在收到UDP报文后,不需要给出任何确认。
以下为使用UDP和TCP协议的各种应用和应用层协议
运输层的端口
为了使运行不同操作系统的应用进程能够互相通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标志,解决这个办法就是在运输层使用协议端口号,或通常简称为端口,虽然通信的重点是应用进程,但只要把所传送的报文交到目的主机的某个合适的端口,剩下的工作就交给TCP或UDP,由此可见,两个计算机之间的相互通信不仅需要对方的IP地址,还需要知道对方的端口号(为了找到对方计算机的应用进程)
-
在协议层间的抽象的协议端口是软件端口,软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址
服务器端使用的端口号
一类叫做熟知端口号,一类叫做登记端口号(登记端口号是为没有熟知的应用程序使用的)
客户端使用的端口号
由于这类端口号仅在客户进程运行时才动态选择,因此又叫短暂端口号
TCP的连接
每一条TCP连接有两个端点,TCP连接的端点叫做套接字或插口,
套接字 = (IP地址:端口号)
例如:IP地址是192.168.1.1端口号是80,那么套接字就是:192.168.1.1 80
每一条TCP连接唯一地被通信两端(即两个套接字)所确定即: TCP连接={(IP1:port1)(IP2:port2)}
停止等待协议
无差错情况
A--------->B B收到并向A发送确认,A收到确认后发送下一个分组
确认丢失
A------->B,B确认丢失,A在超时重传的时间段内没有收到B的确认,于是再一次重传
确认迟到
A------>B 传输过程中没有差错,在超时重传的时间段里,B对A的确认迟到了,A对B会重复发送确认,而B也会重复收到确认并发给A重复确认
使用以上三种确认和重传机制,就可以在不可靠运输中实现可靠的通信。
这种可靠的通信方式叫做自动重传请求ARQ,意思是重传的请求是自动进行的,接收方不需要请求传送方重传某个出错的分组。
TCP报文
-
确认ACK 当ACK=1时确认号字段才有效,当ACK=0时,确认号无效。
-
同步SYN在连接建立时,用来同步序号,当SYN=1 ,ACK=0时,用来表明这是一个连接请求报文,对方同意连接时,则在响应的报文段中使SYN=1,ACK=1。
-
终止FIN用来释放连接,当FIN=1时,表明此报文的发送方发送的数据已发送完毕
TCP运输连接管理
TCP连接建立
三次握手:一次:A向B 发送请求连接
二次:B向A发送同意,也请求连接
三次:A向B发送确认连接
三次握手之后就能传送数据
TCP连接会话的终止
四次握手
第一次:A请求终止对话
第二次:B同意
第三次:B请求终止对话 第四次:A同意
应用层
-
域名系统DNS--从域名解析出IP地址
-
万维网和HTTP协议,以及万维网两种不同信息搜素引擎
-
电子邮件传送过程,SMTP协议和POP3协议,IMAP协议使用的场合
-
动态主机配置协议DHCP的特点
-
网络管理的三个组成部分(SNMP本身,管理信息结构SMI和管理信息库MIB)
-
系统调用和应用编程接口的基本概念
-
P2P文件系统
域名系统DNS
DNS概述
域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址(就是把人看的东西转换给机器去识别)
是、
域名结构
每一个域名都由标号序列组成。而各标号之间用点(.)隔开,例如:
Mail.cctv.com mail是三级域名,cctv是二级域名,com是顶级域名。
DNS规定,域名中的标号都由英文字母和数字构成,每一个标号不超过63个字符,也不区分大小写字母,标号中除了连字符(-)不能使用其他的标点符号。级别最低的写在最左边,级别最高的写在最右边
文件传输协议FTP
主要功能是减少或消除在不同操作系统下处理文件的不兼容性
简单文件传送协议TFTP
发送完一个文件块就等待对方的确认,确认时应指明所确认的块编号
远程终端协议TELNET
可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或IP地址)
万维网
万维网是一个大规模的联机式的信息储藏所。万维网用链接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动的获取丰富的信息
-
怎样标志分布在整个互联网上的万维网文档
使用统一资源定位符URL来标志,并使每一个文档都由唯一的统一资源定位符URL
-
用怎样的协议来实现万维网上的各种链接
需要使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,也就是超文本传送协议HTTP
-
怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接
万维网使用超文本标记语言HTML
URL
用来表示从互联网上得到的资源位置和访问这些资源的方法。
url的一般形式有以下几个部分构成:
<协议>://<主机>:<端口>/<路径>
HTTP
定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
HTTP报文结构
-
请求报文 request
-
响应报文 response
报文都由以下格式组成
-
开始行 用于区分是请求行还是响应行 请求报文中是请求行,响应报文中是响应行
-
首部行 用来说明浏览器 服务器 或报文主体的一些信息
-
实体主体 请求报文中一般不用这个字段,响应报文中也可能没有这个字段
-
cookie:在服务器上存放信息 万维网站点可以使用cookie来跟踪用户
-
动态主机配置协议DHCP
为了把协议软件做成通用的和便于移植的,软件协议的编写者不会把所有的细节都固定在源代码中,而是把协议软件参数化,这使得在很多台计算机上有可能使用同一个经过编译的二进制代码,在协议软件运行之前必须给每一个参数赋值,在协议软件给这些参数赋值的动作叫做协议配置,例如:连接到互联网的计算机的协议软件需要配置的项目包括:
1)IP地址
2)子网掩码
3)默认路由器的IP地址
4)域名服务器的IP地址
动态主机配置协议特点:
-
提供一种机制:即插即用连网。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与
-
DHCP给运行服务器软件而位置固定的计算机指派一个永久地址,当计算机移至一个新网络,重新启动时位置不变
-
需要IP地址的主机向DHCP服务器广播发送发现报文,DHCP服务器的回答报文叫做提供报文,表示提供了IP地址等配置信息。
简单网络管理协议SNMP
网络管理包括对硬件,软件和人力的使用。综合与协调,以便对网络资源进行监视,测试,分析,评价和控制,这样就能以合理的价格,满足网络的一些需求,如实时进行性能,服务质量等。网络管理通常称为网管。