其他专题也也还在整理中,包括Redis,数据库,操作系统,Spring等
OSI七层模型
物理层
首先解决两台物理机之间的通信需求,具体就是机器A往机器B发送比特流 , 机器B能收到比特流 。
物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率 。主要作用是传输比特流(0101二进制数据),将比特流转化为电流强弱传输,到达目的后再转化为比特流 , 即常说的数模转化和模数转换 。这层数据叫做比特 。网卡工作在这层 。
物理层是OSI七层模型的物理基?。?没有它就谈不上数据传输了
物理层就是由实物所承载的,所以作比喻的话,公路、汽车和飞机等承载货物(数据)的交通工具 , 就是物理层的象征
数据链路层
在传输比特流的过程中,会产生错传、数据传输不完整的可能 。
数据链路层定义了如何格式化数据进行传输,以及如何控制对物理介质的访问 。通常提供错误检测和纠正,以确保数据传输的准确性 。本层将比特数据组成?。?交换机工作在这层,对帧解码,并根据帧中包含的信息把数据发送到正确的接收方 。
该层负责物理层面上互连的节点之间的通信传输 。例如与1个以太网相连的两个节点间的通讯 。常见的协议有 HDLC、PPP、SLIP 等
数据链路层会将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)
举个例子:暂且把需要传输的数据看作为不同来源的水,如果直接倒入池子中时 , 是无法重新分辨出不同来源的水的 。但如果将不同来源的灌入瓶子中并打上记号,那就能区分出不同来源的水 。这也就是为什么要划分为具有意义的数据帧传送给对端 。同时要注意的是,数据链路层只负责将数据运送给物理相连的两端,并不负责直接发送到最终地址
网络层
随着网络节点的不断增加,点对点通讯需要通过多个节点,如何找到目标节点,如何选择最佳路径成为首要需求 。
网络层主要功能是将网络地址转化为对应的物理地址,并决定如何将数据从发送方路由到接收方 。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径 。由于网络层处理并智能指导数据传送,路由器连接网络隔断,所以路由器属于网络层 。此层的数据称之为数据包 。本层需要关注的协议TCP/IP协议中的IP协议 。
网络层负责将数据传输到目标地址 。目标地址可以使多个网络通过路由器连接而成的某一个地址 。因此这一层主要负责寻址和路由选择 。主要由 IP、ICMP 两个协议组成
网络层将数据从发送端的主机发送到接收端的主机,两台主机间可能会存在很多数据链路 , 但网络层就是负责找出一条相对顺畅的通路将数据传递过去 。传输的地址使用的是IP地址 。IP地址通过不断转发到更近的IP地址,最终可以到达目标地址
传输层
随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长时间,网络在通信的过程中会中断很多次,此时为了保证传输大量文件时的准确性 , 需要对发送出去的数据进行切分,切割为一个一个的段落(Segement)发送,其中一个段落丢失是否重传,段落是否按顺序到达 , 是传输层需要考虑的问题 。
传输层解决了主机间的数据传输,数据间的传输可以是不同网络,并且传输层解决了传输质量的问题 。
传输层需要关注的协议有TCP/IP协议中的TCP协议和UDP协议 。
会话层
自动收发包,自动寻址 。
会话层作用是负责建立和断开通信连接 , 何时建立,断开连接以及保持多久的连接 。常见的协议有 ADSP、RPC 等
表示层
Linux给WIndows发包,不同系统语法不一致,如exe不能在Linux下执行 , shell不能在Windows不能直接运行 。于是需要表示层 。
解决不同系统之间通信语法问题,在表示层数据将按照网络能理解的方案进行格式化,格式化因所使用网络的不同而不同 。
它主要负责数据格式的转换 。具体来说 , 就是讲设备固有的数据格式转换为网络标准格式 。常见的协议有 ASCII、SSL/TLS 等
应用层
规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,消息头中必须记录消息体的长度等信息,方便接收方正确解析发送方发送的数据 。
应用层旨在更方便应用从网络中接收的数据 , 重点关注TCP/IP协议中的HTTP协议
TCP和IP模型
OSI七层网络模型
TCP/IP四层概念模型
对应网络协议
应用层(Application)
应用层
HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层(Presentation)
Telnet, Rlogin, SNMP, Gopher
会话层(Session)
SMTP, DNS
传输层(Transport)
传输层
【最常问的网络基础面试问题整理】TCP, UDP
网络层(Network)
网络层
IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层(Data Link)
数据链路层
FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical)
IEEE 802.1A, IEEE 802.2到IEEE 802.11
IP、TCP、UDP、HTTP等都属于TCP/IP协议,TCP/IP泛指这些协议 。
OSI模型注重通信协议必要的功能;TCP/IP更强调在计算机上实现协议应该开发哪种程序
TCP和UDP
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务 。也就是说 , 通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流 , 实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用 , 如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
TCP报文头
端口:两个进程在计算机内部进行通信,其中两个进程通信最基本的前提是唯一标识一个进程,通过唯一标识找到对应的进程 。在本地进程通信中可以通过pid,但pid只在本地唯一 。
如果把两个进程放到两台计算机通信,pid实现不了 。解决这个问题的方法就是在传输层使用协议端口号 , 简称端口 。IP地址可以唯一标识主机,TCP协议和端口号可以唯一标识主机中的一个进程 , 利用IP地址+协议+端口号唯一标识去标识网络中的一个进程,这种唯一标识的模式称为Socket 。
源端口号和目地端口各占16位两个字节,也就是端口的范围是2^16=65535
另外1024以下是系统保留的,从1024-65535是用户使用的端口范围
seq序号:占4字节,TCP连接中传送的字节流中的每个字节都按顺序编号 。例如:一段报文的序号字段值是107 , 携带的数据是100个字段,下一个报文段序号从107+100=207开始 。
ack确认号:4个字节 , 是期望收到对方下一个报文段的第一个数据字节的序号 。例如:B收到A发送的报文,其序号字段是301 , 数据长度是200字节,表明B正确收到A发送的到序号500为止的数据(301+200-1=500),B期望收到A下一个数据序号是501 。B发送给A的确认报文段中把ack确认号置为501 。
数据偏移:头部有可选字段,长度不固定,指出TCP报文段的数据起始处距离报文段的起始处有多远 。
保留:保留今后使用的 , 被标为1 。
控制位:由8个标志位组成 。每个标志位表示一个控制功能 。
其中主要的6个:
URG紧急指针标志,为1表示紧急指针有效,为0忽略紧急指针 。
ACK确认序号标志 , 为1表示确认号有效,为0表示报文不含确认信息,忽略确认号字段 。上面的确认号是否有效就是通过该标识控制的 。
PSH标志,为1表示带有push标志的数据,指示接收方在接收到该报文段
以上就是朝夕生活(www.30zx.com)关于“最常问的网络基础面试问题整理”的详细内容 , 希望对大家有所帮助!
猜你喜欢
- 解读504 Gateway Timeout,我们能做什么?
- Git冲突解决:避免协同编程中的冲突
- 盘点+怀旧,那些曾经网吧最火的单机游戏!
- 为什么有这么多人爱看游戏枪械的演示视频?
- 晨枫:丹麦和立陶宛争相邀请美国驻军,扬基饽饽又香了?
- 夏促尾声!赶紧查缺补漏
- 干货|什么是垫片密封
- 垫圈种类知多少?垫圈安装方法指南!
- 上 硅胶泡棉垫片提升紧凑空间内的质量和可靠性