网络基本问题记录

计算机网络各层协议

在讨论TCP/IP协议的层次时,有必要提及一个上下文,是根据OSI的模型还是TCP/IP协议的模型:

人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到到OSI模型。由于TCP/IPOSI模型组不能精确地匹配,还没有一个完全正确的答案。

另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

7 应用层 例如HTTPSMTPSNMPFTPTelnetSIPSSHNFSRTSPXMPPWhoisENRP
6 表示层 例如XDRASN.1SMBAFPNCP
5 会话层 例如ASAPSSH、ISO 8327 / CCITT X.225、RPCNetBIOSASPWinsockBSD sockets
4 传输层 例如TCPUDPTLSRTPSCTPSPXATPIL
3 网络层 例如IPICMPIGMPIPXBGPOSPFRIPIGRPEIGRPARPRARP、 X.25
2 数据链路层 例如以太网令牌环HDLC帧中继ISDNATMIEEE 802.11FDDIPPP
1 实体层 例如线路无线电光纤

通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

4 应用层
(OSI
5 到 7层)
例如HTTPFTPDNS
(如BGPRIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)
3 传输层
(OSI
4层)
例如TCPUDPRTPSCTP
(如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)
2 网络互连层
(OSI
3层)
对于TCP/IP来说这是网际网络协议(IP)
(如ICMPIGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上)
1 网络接口层
(OSI
1和2层)
例如以太网Wi-FiMPLS等。
注:
在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。





总之,具体到某个协议,它到底属于哪一层,并不是那么严格。

各层网络使用的设备

物理层:

  中继器,集线器,双绞线 

  数据链路层: 

  网桥,以太网交换机,网卡(一半物理层,一半数据链路层) 

  网络层: 

  路由器,三层交换机 

  传输层: 

  四层交换机(常用作负载均衡),网关:对高层协议(包括传输层及更高层次)进行转换的网间连接器

在网络各个层中的数据包的名称分别是什么

数据帧、数据包、数据报以及数据段 OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。

信息交换发生在对等OSI层之间,在源端机中每一层把控制信息附加到数据中,而目的机器的每一层则对接收到的信息进行分析,并从数据中移去控制信息,下面是各信息单元的说明:

数据帧(Frame):是一种信息单位,它的起始点和目的点都是数据链路层。
数据包(Packet):也是一种信息单位,它的起始和目的地是网络层。
数据报(Datagram):通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
段(Segment):通常是指起始点和目的地都是传输层的信息单元。
消息(message):是指起始点和目的地都在网络层以上(经常在应用层)的信息单元。

元素(cell)是一种固定长度的信息,它的起始点和目的地都是数据链路层。

元素通常用于异步传输模式(ATM)和交换多兆位数据服务(SMDS)网络等交换环境。

数据单元(data unit)指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。

SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。

Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。

数据链路层的PDU叫做Frame(帧);
 网络层的PDU叫做Packet(数据包);
TCP的叫做Segment(数据段);
UDP的叫做Datagram。(数据报)——在网络层中的传输单元(例如IP)。一个Datagram可能被封装成一个或几个Packets,在数据链路层中传输

帧和数据包都是数据的传输形式。帧,工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;数据包,工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。

TCP协议的控制位

1.TCP保留位:用于以后的扩用。
2.TCP的偏移位:用于表示TCP所传输的数据部分应该从TCP包的哪个位开始计算。
3.TCP报文段首部的6个控制位URGACKPSHRSTSYNFIN;下面将对这6个控制位做详细解释。

 紧急URG(URGent) 
当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。 
当URG置1时,发送应用进程就告诉发送方的TCP有紧急数据要传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。这时要与手不中紧急指针(Urgent Pointer)字段配合使用。

 确认ACK(ACKnowledgment) 
仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。

 推送PSH(PuSH) 
当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。这种情况下,TCP就可以使用推送(push)操作。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快的(即“推送”向前)交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。

 复位RST(ReSeT) 
当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接。RST也可称为重建位或重复位。

 同步SYN(SYNchronization) 
在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置1就表示这是一个连接请求或连接接受报文。

 终止FIN(FINis) 
用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接。

转发和路由选择 

转发发生在 桥接器 或 路由器 上,分组到达桥接器或路由器后,由桥接器或路由器检查分组地址并将它转发到一个邻接的局域网(LAN)上。过滤功能过滤某些分组使它们不再通过路由器或桥接器转发出去。
路由选择是指选择通过 互连网络从源 节点向目的节点传输信息的通道,而且信息至少通过一个中间节点。路由选择工作在 OSI 参考模型的  网络层 。  在确定最佳路径的过程中,路由选择算法需要初始化和维护路由选择表(routingtable)。路由选择表中包含的路由选择信息根据路由选择算法的不同而不同。一般在 路由表 中包括这样一些信息:目的 网络地址 ,相关 网络节点 ,对某条路径满意程度,预期路径信息等。 路由器 之间传输多种信息来维护路由选择表,修正路由消息就是最常见的一种。修正路由消息通常是由全部或部分路由选择表组成,路由器通过分析来自所有其他路由器的最新消息构造一个完整的 网络拓扑结构 详图。链路状态广播便是一种路由修正信息

常用端口号

定义的常用熟知端口: FTP 21 SSH 22 TELNET 23 SMTP 25 TFTP 69 HTTP 80 SNMP 161 HTTPS 443

IP电话使用的数据交换技术是分组交换
在以太网中,是根据MAC地址来区分不同的设备的
中继器属于物理层设备
IP协议是无连接的,其信息传输方式是数据报

协议使用


SMTP——>SMTP——>POP3
SMTP采用“推”的通信方式,在用户向邮件服务器及邮件服务器之间发送邮件时,SMTP客户主动将邮件“推”送到SMTP服务器。而POP3采用“拉”的通信方式,当用户读取邮件时,用户向邮件服务器发出请求,“拉”取用户邮箱中的邮件。




问题

Q1:网关是什么?  

  1. 网络层转发
  2. 网段分割

Q2:ping 一个域名,需要经历哪些网络相关的硬件设备? 

  1. 本机、服务器的网卡
  2. 路由器、以太网交换机、网线
Q3: Https如何工作的  
Q4:Http 四次挥手如果没有2MSL的等待会发生什么,连接永远不会关闭吗?会发送rst包吗 
Q5:DNS解析和CDN , DNS解析有什么类型 
Q6:tcp、udp区别是什么
Q7:tcp拥塞控制简单说下 

Q8:http和https的区别

端口 :HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。 
安全性和资源消耗: HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。所以HTTPS采用混合加密机制。
所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。

一个公式概括:HTTP+加密+认证+完整性保护=HTTPS

对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。

 Q9:你觉得http和https的端口为什么不能一样
Q10:长连接的优势
Q11:长连接除了解决网络io方面还解决了什么问题
Q12:http2.0有了解吗
Q13:IP转物理地址是怎么做到的
Q14:arp协议在哪一层
Q15:arp协议在客户端还是服务端
Q16:计网三次握手过程、为啥不两次。
Q17:udp和tcp使用场景
Q18:在网址上输入一个URL的过程,涉及到哪些协议
Q19:讲一讲TCP三次握手和四次挥手的详细流程

Q20:TCP报头都有什么,为什么可靠

Q21:https的工作流程

Q22:http1与http2

Q23:http长短连接

Q24:http状态码


1.三次握手和四次挥手的过程?每次发送的包的内容,客户端和服务端的状态?
2.ICMP协议的应用? (ping命令和traceRoute等)
3.TCP如何保证可靠性? (校验和,分片,超时重传,ARQ协议,滑动窗口等等)
4.如何实现UDP的可靠传输? (考虑在应用层实现,可以了解下http3.0协议)
5.https的请求过程? (如何建立ssl)
6.一次RPC调用的整个链路? (考虑三次握手负载均衡等)
7.http + restful 和 RPC的区别?各自适用的场景?
8.DNS协议用到了什么传输层协议? (一台新电脑如何获取到有效的网关地址)
9. 在浏览器中输入一个url,敲下回车之后发生的事情(考虑DNS解析,负载均衡,建立连接等等)
10.服务端出现大量timewait是什么原因导致的?(具体的解决方案)
11.http的报文结构?TCP的?IP的?
12.http协议的发展历程(1.0,1.1,2.0,3.0)
全部评论

相关推荐

06-23 18:25
沈阳大学 Java
HR已读不回,是我说话方式不对吗?
大白之主:你是串子吗? hr: 我们不招人了,把岗位挂着boss只是因为我闲得慌
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-23 18:34
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务