本文主要是介绍计算机网络基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
分层结构
OSI分层(7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)【比特】
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)【帧、点到点】
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)【分组、数据包】
传输层:TCP、UDP、SPX 【报文、端到端】
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
TCP/IP和HTTP区别
TCP位于传输层,HTTP位于应用层。下层只会向上层提供服务,但不会从上层获得服务。虽然HTTP本身是一个协议,但其最终还是基于TCP的。不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。
IP地址分类:【组成:网络地址+主机地址】
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);【1+3】
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);【2+2】
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);【3+1】
D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)
E类地址:保留
私有地址:互联网上不使用,用于局域网中。
其中A、B、C是基本类,D、E类作为多播和保留使用。
以下是留用的内部私有地址:
A类 10.0.0.0·10.255.255.255
B类 172.16.0.0·172.31.255.255
C类 192.168.0.0·192.168.255.255
IP地址与子网掩码相与得到网络号:
ip : 192.168.2.110
&
Submask : 255.255.255.0
··············
网络号 :192.168.2 .0
注:
主机号,全为0的是网络号(例如:192.168.2.0),主机号全为1的为广播地址(192.168.2.255)
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)
IP地址与子网掩码相与得到主机号。子网掩码是为了区分各个不同的子网而设置的,与主机IP地址进行位与操作,从而区分出是否在同一网段,从而确定局域网的范围,减少广播风暴的影响范围。
1.举个例子:比如172.16.2.160/255.255.255.0:
在没有划分子网的情况下:
这个IP地址的【网络号】就是172.16.2.0
主机号为 0.0.0.160
2.划分子网情况如:
172. 16. 2. 160/255.255.255.192(IP地址/掩码)
1010 1100 0001 0000 0000 0010 1010 0000 (二进制)
1111 1111 1111 1111 1111 1111 1100 0000 (子网掩码)
·····················相"与"(理解成相乘)
1010 1100 0001 0000 0000 0010 1000 0000(172.16.2.128这就是子网络号)
1010 1100 0001 0000 0000 0010 1000 0001(172.16.2.129是第一个主机)
1010 1100 0001 0000 0000 0010 1011 1110(172.16.2.190最后一个主机)
1010 1100 0001 0000 0000 0010 1011 1111 广播地址 172.16.2.191
1010 1100 0001 0000 0000 0010 1100 0000 172.16.2.192 下一个子网
因为掩码是255.255.255.192 ,因此它们之间的网段间隔是256-192=64
所以这个网段只有(2的平方-2)2个子网;
172.16.2.128
172.16.2.192
特殊的IP地址
1.网络地址:
IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。
2.广播地址:
广播地址通常称为直接广播地址,是为了区分受限广播地址。
广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。
3.组播地址
D类地址就是组播地址。
先回忆下A,B,C,D类地址吧
A类地址以00开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;
B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
Notice:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。
4. 255.255.255.255
该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址之只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。
Notice:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。
5. 0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范 围内)的服务器发送IP请求分组。
6.回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
7. A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
MAC地址
media access control(媒体访问控制),称为物理地址、硬件地址,用来定义网络设备的位置,而每个网络设备会有一个专属它的IP地址。
由于数据链路层负责MAC地址,所以一个主机会有一个MAC地址,MAC地址是网卡决定的,是固定的。
IP数据包的格式
由首部 和数据 两部分组成。
首部由固定部分和可选部分组成。
首部的固定部分有20字节。
可选部分的长度变化范围为1——40字节。
TCP报文段
TCP报文段的格式:分为首部和数据两部分。首部由固定部分和选项部分组成,固定部分是20字节。TCP首部的最大长度为60。
下面是报文段首部各个字段的含义。
源端口号以及目的端口号,各占2个字节,端口是传输层和应用层的服务接口,用于寻找发送端和接收端的进程,一般来讲,通过端口号和IP地址,可以唯一确定一个TCP连接,在网络编程中,通常被称为一个socket接口。
序号,占4字节,用来标识从TCP发送端向TCP接收端发送的数据字节流。
确认序号,占4字节,包含发送确认的一端所期望收到的下一个序号,因此,确认序号应该是上次已经成功收到数据字节序号加1。
数据偏移,占4位,用于指出TCP首部长度,若不存在选项,则这个值为20字节,数据偏移的最大值为60字节。
保留字段占6位,暂时可忽略,值全为0。
标志位
URG(紧急) : 为1时表明紧急指针字段有效
ACK(确认):为1时表明确认号字段有效
PSH(推送):为1时接收方应尽快将这个报文段交给应用层
RST(复位):为1时表明TCP连接出现故障必须重建连接
SYN(同步):在连接建立时用来同步序号
FIN (终止): 为1时表明发送端数据发送完毕要求释放连接
接收窗口占2个字节,用于流量控制和拥塞控制,表示当前接收缓冲区的大小。在计算机网络中,通常是用接收方的接收能力的大小来控制发送方的数据发送量。TCP连接的一端根据缓冲区大小确定自己的接收窗口值,告诉对方,使对方可以确定发送数据的字节数。
校验和占2个字节,范围包括首部和数据两部分。
选项是可选的,默认情况是不选。
TCP的可靠性如何保证? TCP的可靠性是通过顺序编号和确认(ACK)来实现的。
UDP(User Datagram Protocol)
UDP协议十分简单,它由两部分组成:首部和数据。其中,首部仅有8个字节,由4个字段组成,每个字段都是两个字节,包括源端口和目的端口,长度(UDP用于数据报的长度)、校验和。
ARP是地址解析协议,简单语言解释一下工作原理
答: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
描述RARP协议
答:RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。
各种协议介绍
答:ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。
DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DNS域名系统,简单描述其工作原理?
当一个应用进程需要把某个域名解析为IP地址时,该应用进程就会调用解析程序,并成为一个DNS用户,把待解析的域名放在DNS请求报文中,以UDP数据报的形式发送给本地域名服务器,
本地域名服务器查找到相应域名的IP地址后,就将该域名的IP地址信息放入应答报文中返回给客户进程,如果本地域名服务器没有直接查找到对应的IP地址,则向根域名服务器发出迭代查询,再将查询到的IP地址信息回传给客户程序。
在浏览器中输入网址之后执行会发生什么?
1.查找域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器;
2.浏览器向IP对应的web服务器发送一个HTTP请求,进行网络通信,其中分层由高到低分别为:应用层、传输层、网络层、网络接口层。发送端从应用层往下走,接收端从网络接口层往上走;
3.服务器响应请求,回送网页内容;
4.浏览器解析网页内容;
在浏览器中输入www.baidu.com后执行的全部过程?
1、客户端浏览器,通过DNS解析到www.baidu.com 的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.181.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层,不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
了解交换机、路由器、网关的概念,并知道各自的用途?
答:1)交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。
交换机被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。
2)路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。
3)网关
网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系 统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关 (gateway)与路由器(router)还没有区别。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。
问题
1.有一条TCP连接,它的最大报文段长度为4KB,TCP拥塞窗口为24KB,这时候发生超时,那么该拥塞窗口变为了4kb。
答:因为在TCP报文中,当发生超时事件,阈值被设置成当前拥塞窗口的一半,而拥塞窗口被设为一个最大报文段,也就是4KB;
这篇关于计算机网络基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!