三次握手、四次挥手问题:TCP的三次握手和四次挥手
OSI,TCP/IP,五层协议的体系结构,以及各层协议
①OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
②TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
③五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
④每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)
数据链路:PPP、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP (路由器)
传输层:TCP、UDP
应用层:FTP、DNS、Telnet、SMTP、HTTP
⑤每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
在浏览器中输入www.baidu.com后执行的全部过程
①浏览器获取输入的域名www.baidu.com
② 浏览器向DNS请求解析www.baidu.com的IP地址
③ 域名系统DNS解析出百度服务器的IP地址
④浏览器与该服务器建立TCP连接(默认端口号80)
⑤浏览器发出HTTP请求,请求百度首页
⑥服务器通过HTTP响应把首页文件发送给浏览器
⑦TCP连接释放
⑧浏览器将首页文件进行解析,并将Web页显示给用户。
DNS域名系统,简单描述其工作原理。
当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。
①客户机向其本地域名服务器发出DNS请求报文
②本地域名服务器收到请求后,查询本地缓存,假设没有该记录,则以DNS客户的身份向根域名服务器发出解析请求
③根域名服务器收到请求后,判断该域名所属域,将对应的顶级域名服务器的IP地址返回给本地域名服务器
④本地域名服务器向顶级域名服务器发出解析请求报文
⑤顶级域名服务器收到请求后,将所对应的授权域名服务器的IP地址返回给本地域名服务器
⑥本地域名服务器向授权域名服务器发起解析请求报文
⑦授权域名服务器收到请求后,将查询结果返回给本地域名服务器
⑧本地域名服务器将查询结果保存到本地缓存,同时返回给客户机
HTTP的状态码:
①大致可分为五大类
100-199 信息,服务器收到请求,需要请求者继续执行操作。指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 重定向,需要进一步的操作以完成请求
400-499 用于指出客户端的错误。请求包含语法错误或无法完成请求
500-599 用于支持服务器错误。服务器在处理请求的过程中发生了错误
②常见的状态码
206 部分内容。服务器成功处理了部分GET请求
301 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
302 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
400 (错误请求) 服务器不理解请求的语法。
404 (未找到) 服务器找不到请求的网页。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
HTTP和HTTPS的区别:
https:全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?这是由TLS(SSL)提供的,可以简单理解为 HTTPS=HTTP+SSL。
①HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
②HTTP 是相对不安全的,而 HTTPS 是相对安全的
③HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
④在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
⑤HTTP 无需加密,而 HTTPS 对传输的数据进行加密
⑥HTTP 无需证书,而 HTTPS 需要认证证书
TCP和UDP的区别?
①TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
②TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
③TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
④TCP对应的协议和UDP对应的协议
1). TCP对应的协议:
FTP:定义了文件传输协议,使用21端口。
Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
2). UDP对应的协议:
DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
TCP是怎么保证传输可靠的?
①确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。
②数据校验
③数据合理分片和排序:TCP会按MTU合理分片,接收方会缓存未按序到达的数据,重新排序后再交给应用层。
TCP为什么引入接受缓存这个数据结构?
如果没有接受缓存的话,或者说只有一个缓存的话,为了保证接受的数据是按顺序传输的,所以如果位于x序号之后的序号分组先到达目的主机的运输层的话必然丢弃,这样的话将在重传上花费很大的开销,所以一般如果有过大的序号达到接收端,那么会按照序号缓存起来等待之前的序号分许到达,然后一并交付到应用进程。
④流量控制
当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。
⑤拥塞控制
当网络拥塞时,减少数据的发送。
了解交换机、路由器、网关的概念,并知道各自的用途
①交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
②路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。
③网关
网关(Gateway),网关是连接两个网络的设备,
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能转送数据包。在主机中,数据包需经过TCP/IP四层协议处理,但是在网关只需要到达网际层,决定路径之后就可以转送。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。
IP地址的分类
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255)
B类地址:以10开头,第一个字节范围:128~191(128.0.0.0 - 191.255.255.255)
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
除去以上三类公有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。
ARP是地址解析协议,简单语言解释一下工作原理。
①每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
②当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
③当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
④源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
RARP(反向地址转换协议):
反向地址转换协议就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。
①给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
②本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
③如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
④如果不存在,RARP服务器对此不做任何的响应;
⑤源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
为什么有了可靠地TCP还需要不可靠的UDP?
①TCP的优缺点。优点呢,TCP是可靠的连接,由于有基本的重传确认机制,可以保证把一个数据块完完整整的从A传到B;缺点也是因优点而生,因为有三次握手,所以会传输更多的包,浪费一些带宽;因为需要可靠地连接进行通信,则需要双方都必须持续在线,所以在通信过程中server需要维持非常大的并发连接,浪费了系统资源,甚至会出现宕机;再者就是因为有重传确认,则会浪费一部分的带宽,且在不好的网络中,会因为不断地连接断开连接,严重降低了传输效率。
②相对于TCP来说,UDP是非面向连接的不可靠的协议,其优点也因为缺点而生。首先,因为没有三次握手,所以会起步比较快,延时小;另外,由于不需要双方持续在线,所以server不用维护巨量的并发连接,节省了系统资源;三,因为没有重传确认,虽然到达的数据可能会有所缺失,但在不影响使用的情况下,能更高效的利用网络带宽。
③TCP适合实时性要求不高、但要求内容要完整传输的应用。相比而言,UDP由于无连接、无重传确认,所以传输效率高、延时小,适合实时性要求高的应用,如游戏服务器,音频,视频等;另外,由于不用维持大的并发量,所以适合巨量服务的server,加上合适的时间控制,可以用来设计更大的并发服务器;再者就是,UDP可以更高效的利用网络带宽。
数据链路两端的设备是:DTE或DCE
DTE(DataTerminalEquipment)数字终端设备:指一般的终端或是计算机。可能是大、中、小型计算机,也可能是一台只接收数据的打印机。
DCE(DataCircuit-terminatingEquipment)数字通信设备:通常指调制解调器,多路复用器或数字设备。
DTE,DCE的区别
DCE一方提供时钟,DTE不提供时钟,但它依靠DCE提供的时钟工作。比如PC机和MODEM之间的连接。PC机就是一个DTE,MODEM是一个DCE。DTE可以从硬件上区别它的接口为针式,DCE的接口为孔式。
Socket编程注意点
客户端(client):socket→connect→具体操作
服务端(serve):socket→bind→listen→accept→具体操作
(bind:端口绑定; listen:端口监听; accept:阻塞,等待客户端connect)
(socket:把TCP/IP协议隐藏在软件接口后面)
P2P本质上还是C/S模式,只不过交互的双方既是服务器又是客户端。
路由汇聚:
路由汇聚的“含义”是把一组路由汇聚为一个单个的路由。路由汇聚的最终结果和最明显的好处是缩小网络上的路由表的尺寸。这样将减少与每一个路由跳有关的延迟,因为由于减少了路由登录项数量,查询路由表的平均时间将加快。路由汇聚的“用意”是当我们采用了一种体系化编址规划后的一种用一个IP地址代表一组IP地址的集合的方法。
相关计算:
设有下面4条路由:172.18.129.0/24、172.18.130.0/24、172.18.132.0/24和172.18.133.0/24,如果进行路由汇聚,能覆盖这4条路由的地址是____。
A. 172.18.128.0/21 B. 172.18.128.0/22
C. 172.18.130.0/22 D. 172.18.132.0/23
解:通过计算可知,上面4个IP,前21位是完全相同的,所以汇聚后的IP是前21位保留,后面补0,然后/24变为/21。所以选A
连续ARQ协议分为两种,选择重发ARQ协议和后退N帧ARQ协议。当滑动窗口序号位数为n时,选择重发ARQ协议的发送窗口为2(n-1),后退N帧ARQ协议的发送窗口为2n-1 。
原文链接:https://blog.csdn.net/weixin_39731083/article/details/81505975