《计算机网络》笔记

前言

计算机网络学习的内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我们的普通话的作用。 同理,计算机网络协议同我们的语言一样,多种多样。而ARPA公司与1977年到1979年推出了一种名为ARPANET的网络协议受到了广泛的热捧,其中最主要的原因就是它推出了人尽皆知的TCP/IP标准网络协议。目前TCP/IP协议已经成为Internet中的“通用语言”。

网络概述和体系结构

OSI模型

模型图

1、 运输层中以端口号标志不同的应用程序

2、 物理层、数据链路层、网络层的数据传输单位依次是比特、帧、分组

3、 各层相关应用分布情况

TCP/IP:
数据链路层:PPP
网络层:IP、ARP、RARP、ICMP、IGMP
传输层:TCP、UDP、UGP
应用层:Telnet、FTP、SMTP、SNMP

4、OSI

物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS
数据链路层:Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2
网络层:IP,ARP,RARP,IPX,AppleTalk DDP
传输层:TCP,UDP,SPX
会话层:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
表示层:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
应用层:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP

5、协议图
协议图

网络拓扑图

广域网:WAN、局域网:LAN

星型拓扑、环形拓扑、总线拓扑、网状拓扑结构

物理层

说明:物理层的任务是提示网络的物理连接

物理层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层中两个重要的设备名称,中继器和集线器。

基本复用技术

1、频分复用

按频率划分的不同信道,用户分到一定的频带后,在通信过程中自始至终都占用这个频带,可见频分复用的所有用户在同样的时间占用不同的带宽资源

2、时分复用

按时间划分成不同的信道,每一个时分复用的用户在每一个TDM帧中占用固定序列号的间隙,可见时分复用的所有用户是在不同时间占用同样的频带宽度。

码分复用技术

码分复用CDM(码分多址CDMA)是另一种共享信道的方法。每一个用户可以在同样的时间使用同样的频带进行通信。

  • 各用户使用经过特殊挑选的不同码型,因此个用户之间不会造成干扰。
  • 这种信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

在CDMA中,每一个比特时间再划分为m(一般为64或128)个短的间距,称为码片
使用CDMA的每一个站被指派一个唯一的m bit码片序列。如果要发送比特1,则发送它自己的m bit码片序列,如果要发送比特0,则发送该码片序列的二进制反码。为了方便,我们按照惯例将马片中的0写为-1,将1写为+1 。CDMA系统的一个重要特点就是这种体制给每一个站分配的码片序列不仅必须各不相同,并且还必须互相正交。在实用的系统中是使用伪随机码序列。

用数学公式可以很清楚的表达这种正交关系。令向量S标识站S的码片向量
再令表示其他人和站的码片向量。两个不同站的码片序列正交,就是向量S和T的规格化内积都是0

数据链路层

数据链路层要任务就是进行数据封装和数据链接的建立

点对点信道(PPP协议)

一对一的点对点通信方式
  • PPP协议的组成:①将IP数据报封装到串行链路的方法;②LCP链路控制协议(用来建立、配置和测试数据链路连接);③NCP网络控制协议。
  • PPP的帧格式:7E FF 03 (协议) (信息部分) FCS 7E 具体见课本P79;
  • ppp协议的字节填充:

    7E -> 7D 5E

    7D -> 7D 5D

  • 数值小于0x20的字节需在前面加7D,并改变该字符,例如:03 ->7D 23
  • 零比特填充:每5个1后面补一个0.

广播信道(CSMA/CD协议)

一对多的广播通信方式
  • 通信方式

    • 准备发送:适配器从网络层获得一个分组,封装成帧,放入适配器的缓存中,发送前需要先检测信道。
    • 检测信道:一直检测信道,直到检测到信道空闲(并在96比特时间内信道保持空闲,即帧间最小间隔),就发送该帧。
    • 发送时不停检测信道,即适配器边发送边监听:若未检测到碰撞,则发送成功;若检测到碰撞,立即停止发送,按协议退避算法,等待r倍512比特时间后返回步骤②,若重传16次还不成功则向上报错。

    相关:载波监听多钱接入/碰撞检测(先说后听,边说边听)

     不能进行全双工通信,只能进行半双工通信

    以太网规定最短帧长不小于64字节,即512Bit,发送512Bit时间要51.2ns,即争用期。

MAC地址

物理地址、硬件地址,用来定义网络设备的位置

介绍:在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。MAC地址是网卡决定的,是固定的。

单播帧、多播帧、广播帧

网络层

网络层为应用程序和目标主机之间提供通信服务

IP协议

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP协议是不可靠的、无连接的传送机制Internet协议,其信息传输方式是数据报。IP协议不具有拥塞控制、流量控制等,这些是TCP协议才具有的控制技术。

报文交换与分组交换

ARP协议

ARP的用途和工作过程:针对某一台具体主机,将其IP地址映射成网络适配器的MAC地址

工作过程:主机1要向主机2发送数据,先在本机ARP缓存表查找主机2的MAC地址,若有,则将MAC地址写入MAC帧并发送;若没有,则广播一个ARP询问包(包含主机1的MAC地址和IP地址,主机2的IP地址),主机2收到后回送一个ARP响应包(包含主机2的MAC,IP和主机1的MAC,IP)从而主机1获得主机2的IP地址。

三级IP地址:{<网络号><子网号><主机号>}

ICMP协议(网际控制报文协议)

ICMP协议时TCP/IP协议的子协议,位于IP层。TCP、UDP属于传输层,ICMP 、IP属于网络层协议,而ICMP主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。ICMP是IP层的一个组成部分,它传递差错报文以及其它需要注意的信息。ICMP报文通常被IP层或更高层协议使用。

ICMP报文有两类:ICMP差错报告报文和ICMP询问报文

ping命令的作用

ping 命令有助于验证网络层的连通性。ping在主机和服务器之间传递控制消息,属于ICMP协议,但是ICMP协议是TCP/IP的子协议。

注:ping命令中的额、数据保护传输实际上是使用UDP协议实现的。

传输层

运输层为应用程序与应用程序之间提供逻辑通信服务

传输层是后面应用层协议的基础。例如应用层的DNS、TFTP、RIP、DHCP、NFS、专用协议都是基于传输层的UDP协议,HTTP、FTP、STMP、POP3、BGP协议都是基于传输层TCP协议。

可以将传输层协议抽象成一个API工具包,其中封装了TCP、UDP传输协议,应用层协议根据自身需求选择两种协议之一,进行信息传输

端口

端口定义在传输层,作用于传输层和应用层之间的交互

常用端口:

用户数据报协议UDP

定义:无连接;尽最大努力交付;面向报文;无拥塞控制;支持1对1,1对多,多对1,多对多的交互通信;首部开销小。

UDP的首部格式:源端口(2字节);目的端口(2);长度(2);检验和(2,计算检验和需要在UDP用户数据报前加一个伪首部)。

传输控制协议TCP

TCP的可靠传输,流量控制,拥塞控制

面向连接;可靠交付;面向字节流;全双工通信

TCP连接过程---三次握手

三次握手

  • 第一次握手:客户端发送syn包(seq=j)到服务器。 
  • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包。 
  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。 
  • 三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。

1、TCP的可靠传输

  • 停止等待协议

    超时重传:RTO=RTTs+4*RTTd

    确认丢失和确认迟到

  • 连续ARQ协议(提高信道利用率)

2、TCP的流量控制

  • 滑动窗口协议(提高信道利用率)

3、TCP的拥塞控制

慢开始:探测网络是否拥塞,指数增加发送窗口

拥塞避免:让拥塞窗口cwnd缓慢地增大

快重传(防止发送没收到确认,误以为拥塞而启动慢开始)

快恢复

应用层

应用层协议通过位于不同主机中的多个应用进程之间的通信和协同工作解决某一类应用问题

域名

顶级域名 -> 二级域名 -> 三级域名 -> ...

HTTP协议

  • HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。
  • 格式:http://host":"port;
    http协议的客户端请求方法有get,head,post;

电子邮件SMTP和POP3协议

  • SMTP:simple mail transfer protocol,简单邮件传输协议。专注于邮件在服务器之间的中转,是发送邮件服务器;通过强制用户登录邮件发送服务器的方式,即用户需要输入用户名和密码后才能登录进发送邮件服务器;减少垃圾邮件的产生;
  • POP3: post office protocol,邮局协议的第三个版本,是接收邮件服务器;规定怎么将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议;是因特网的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地,同时删除保存在邮件服务器上的电子邮件。 缺点:用户需要将服务器上所有的邮件下载到客户端本地,若出现邮件炸弹或大附件,会造成网络拥塞。
  • IMAP:Internet Mail Access Protocol,交互式邮件存取协议,支持在线(如webmail邮件)、离线(邮件客户端软件)、分离方式(在线和离线方式的结合)的处理;是接收邮件服务器。用户在客户端上的操作,会反馈到服务器上,如删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。相比POP3而言,不需要将邮件下载到本地后才能进行操作,这样用户可以在根据邮件的简单信息有选择性地下载邮件至本地。

SMTP和POP3协议

动态主机配置协议DHCP

自动获取IP地址

END

最后修改:2020 年 03 月 21 日 01 : 40 AM
如果觉得我的文章对你有用,请随意赞赏~