每日五题(网络协议)

1.OSI七层模型,每一层的功能 (osi开放式系统接口)

答:

(1)物理层
    物理层所处理的数据单位是比特(bit),
物理层向上为数据链路层提供物理链路,实现透明的比特流(bit stream)传输服务,
物理层向下与物理媒体相连,要确定连接物理媒体的网络接口的机械、电气、功能和过程方面的特性。
(2)数据链路层
    数据链路层负责在单个链路上的结点间传送以帧(frame)为wd=PDU&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3m1RvnjuWuW6Ynj79uAP-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4nWDsrHRLP6" target="_blank" class="baidu-highlight">PDU的数据。在不太可靠的物理链路上实现可靠的数据传
输。数据链路层的主要功能包含:建立、维持和释放数据链路的连接。链路的訪问控制,流量控制和差错控制。

(3)网络层
    网络层传送的wd=PDU&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3m1RvnjuWuW6Ynj79uAP-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4nWDsrHRLP6" target="_blank" class="baidu-highlight">PDU称为分组或包(packet),在物理网络间传送分组,负责将源端主机的报文通过中间转发结点传送到
目的端。

网络层是通信子网的最高层,为主机提供虚电路和数据报两种方式的服务。
网络层主要负责分组转发和路由选择,依据路由表把分组逐跳地由源站传送到目的站,并能适应网络的负载及拓扑结构的变化,动态地更新路由表。

(4)传输层
    传输层传输的PDU称为报文(message)。传输层为源结点和目的结点的用户进程之间提供端到端的可靠的传输服务。端
到端的传输指的是源结点和目的结点的两个传输层实体之间,不涉及路由器等中间结点。为了保证可靠的传输服务。
传输层具备下面一些功能:面向连接、wd=%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3m1RvnjuWuW6Ynj79uAP-0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4nWDsrHRLP6" target="_blank" class="baidu-highlight">流量控制与拥塞控制、差错控制相网络服务质量的选择等。
(5)会话层
    会话层在传输层服务的基础上添加控制会话的机制,建立、组织和协调应用进程之间的交互过程。

会话层提供的会
话服务种类包含双工、半双工和单工方式。会话管理的一种方式是令牌管理,仅仅有令牌持有者才干运行某种操作。会话层提供会话的同步控制,当出现问题时,会话活动在故障点之前的同步点进行反复,而不必从头開始
(发送器。接收器是否同一时候发送会话推断服务种类)

(6)表示层 表示层定义用户或应用程序之间交换数据的格式。提供数据表示之间的转换服务,保证传输的信息到达目的端后意义不变。

(7)应用层 应用层直接面向用户应用,为用户提供对各种网络资源的方便的訪问服务。

2. TCP/IP的四层模型,每一层的功能

上图是相应的到osi层的内容。

主机到网络层:实际上TCP/IP參考模型没有真正描写叙述这一层的实现,仅仅是要求可以提供给其上层-网络互连层一个訪问接口,以便在其上传递IP分组。因为这一层次未被定义。所以其详细的实现方法将随着网络类型的不同而不同。

网络互连层:定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了须要完毕路由的功能外。也能够完毕将不同类型的网络(异构网)互连的任务。除此之外。网络互连层还须要完毕拥塞控制的功能。

传输层:在TCP/IP模型中。传输层的功能是使源端主机和目标端主机上的对等实体能够进行会话。在传输层定义了两种服务质量不同的协议。

即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。

应用层(会话层。表示层,应用层): TCP/IP模型将OSI參考模型中的会话层和表示层的功能合并到应用层实现。  

 应用层面向不同的网络应用引入了不同的应用层协议。当中。有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。

3. IP协议是什么, IPv4的协议包封装结构, 及该结构中的每一个数据域的意思?

答:

IP协议:用于将多个包交换网络连接起来的。它在源地址和目的地址之间传送一种称之为数据包的东西。它还提供对数据大小的又一次组装功能。以适应不同网络对包大小的要求。

版本号号(VERS): 4比特。表示IP协议版本号号。

眼下的版本号号是4。即IPv4。版本号号规定了数据报的格式。

版本号不同。其数据报格式也有所不同。如IPv6的报文结构就和IPv4的结构不同。

报文头长度(HLEN): 4比特,表示报文头长度。报文头长度以4 Byte为单位计算。

除IP选项(IP Options)和填充(Padding)字段能够不存在外,其它各字段必须存在。这些必须存在的字段是5个4 Byte,共20 Byte长。

因此,报文头长度值通常是5 。

又因为报文头长度必须是32比特的整数倍,所以当一个含有IP选项字段的IP数据报不是32比特的整数倍时。由填充字段用0补足。

服务类型(Type of Service): ToS字段,8比特。指示对本数据报的处理方式。

它主要用来指示数据报的优先权及传输类型。QoS技术就是使用此字段对数据进行标记优先级的。

**总长(Total Length):**16比特。以Byte为单位表示整个IP数据报长度,包含报文头及其携带的数据。由于总长字段是16比特,所以IP数据报最长可达216 1=65 535字节。

标识(Identification): 16比特,是发送者赋予数据报的标识符,接收者利用这个信息和源地址推断收到的分组属于哪个数据报,以便进行重组。因此,在分片时,该域必须不加改动地拷贝到各分片的报文头中。

标志(Flags): 3比特,仅仅有低两位有效。第一比特为0时表示该分片是最后一片,假设该位是1表示后面还有分片。

第二比特为0时表示能够对数据报进行分片,假设该位是1表示数据报不能分片。

当该位设置为1而帧长度不匹配又必须分片时,设备就会将数据报丢弃并返回错误信息。

片偏移(Fragment Offset):指示本分片数据在初始数据报数据区中的偏移量,偏移量以8 Byte为单位,重组时分片顺序由片偏移提供。

生存时间(Time To Live):简称TTL,8比特。用来控制数据报在网络中存在的时间。

眼下TTL的值并不代表时间,而是代表经由路由器的个数。数据报每经过一台路由器时。路由器将TTL值减1,一旦TTL=0,系统就丢弃该数据报,并返回错误信息。这样避免了路由出现环路时数据报在路由器之间无休止地循环。

协议(Protocol): 8比特,表示该数据报携带的数据是由哪个上层协议封装的。也就是指示传输层的协议类型。如最常见的协议类型是TCP或UDP。

头校验和(Header Checksum): 16比特。用于保证IP头数据的完整性。

地址(Address):分为源IP地址和目的IP地址,各占32比特。表明数据的来源及其到达的目的地。

填充(Padding):当IP报文头长度不是32比特的整数倍时,填充0来凑齐32比特整数倍。没有实际意义。

数据(Data):来自第4层的数据段。

4. TCP协议是什么?TCP数据包结构?

TCP建立联接的三次握手,断开连接的四次挥手的过程?

答:

TCP: TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说。在正式收发数据前,必须和对方建立可靠的连接。

数据包结构:

三次握手:

对于三次握手,我是这样来理解的

(1)client发送一个序列号(syn)给server

(2)server接收以后,会将这个序列号+1作为确认信号(ack)和自己的一个服务号(syn)给客户

(3)客户接收到这两个信息以后,会将服务好(syn)+1作为确认信号(ack)给server

三次握手完成

断开连接的四次挥手:

因为TCP连接是全双工的,因此每一个方向都必须单独进行关闭。这个原则是当一方完毕它的数据发送任务后就能发送一个FIN来终止这个方向的连接。

收到一个 FIN仅仅意味着这一方向上没有数据流动。一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将运行主动关闭,而还有一方运行被动关闭。

(1)clientA发送一个FIN。用来关闭客户A到serverB的数据传送。

(2)serverB收到这个FIN。它发回一个ACK。确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)serverB关闭与clientA的连接。发送一个FIN给clientA。

(4)clientA发回ACK报文确认。并将确认序号设置为收到序号加1。

1.server读通道关闭

2.客户机写通道关闭

3.客户机读通道关闭

4.server写通道关闭

关闭行为是在发起方数据发送完成之后。给对方发出一个FIN(finish)数据段。直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,两方的数据通信全然结束,过程中每次接收都须要返回确认数据段ACK。

5.一次完整的HTTP请求所经历的7个步骤?

答:

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Webserver之间将完毕下列7个步骤:

  • 建立TCP连接

    在HTTP工作開始之前,Web浏览器首先要通过网络与Webserver建立连接。该连接是通过TCP来完毕的。该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,依据规则。仅仅有低层协议建立之后才干进行更高层协议的连接。因此。首先要建立TCP连接,一般TCP连接的port号是80。

  • Web浏览器向Webserver发送请求命令

    一旦建立了TCP连接,Web浏览器就会向Webserver发送请求命令。比如:GET/sample/hello.jsp HTTP/1.1。

  • Web浏览器发送请求头信息

    浏览器发送其请求命令之后,还要以头信息的形式向Webserver发送一些别的信息,之后浏览器发送了一空白行来通知server,它已经结束了该头信息的发送。

  • Webserver应答

    客户机向server发出请求后,server会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本和应答状态码。

  • Webserver发送应答头信息

    正如client会随同请求发送关于自身的信息一样,server也会随同应答向用户发送关于它自己的数据及被请求的文档。

  • Webserver向浏览器发送数据

    Webserver向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束。接着,它就以Content-Type应答头信息所描写叙述的格式发送用户所请求的实际数据。

  • Webserver关闭TCP连接

    普通情况下,一旦Webserver向浏览器发送了请求数据,它就要关闭TCP连接。然后假设浏览器或者server在其头信息增加了这行代码:Connection:keep-alive

    TCP连接在发送后将仍然保持打开状态,于是,浏览器能够继续通过同样的连接发送请求。保持连接节省了为每一个请求建立新连接所需的时间,还节约了网络带宽。i

时间: 2024-08-12 21:51:01

每日五题(网络协议)的相关文章

每日五题(java基础)

一.HashMap和Hashtable的区别. 答: HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable. HashMap允许将null作为一个entry的key或者value,而Hashtable不允许. HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方

每日五题

1. int和Integer有什么差别? 答: int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之中的一个. JAVA语言为八大基本数据提供了包装类,Integer相应是int类型的包装类,就是把int类型包装成Object对象. 2.DOM解析与SAX解析的不同? 答: SAX:仅仅能读,不能改动.仅仅能顺序訪问.适合对大型的XML的解析,解析速度快! DOM:不仅能读,还能改动,并且可以实现随机訪问.缺点是解析速度慢

每日五题(jsp)

1.forward 和 redirect 的区别 答: 1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址. redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 2.从数据共享来说 forward:转发页面和转发到的页面可以共享request里面的数据. redirect

每日五题(随记)

1. Servlet的生命周期是什么? 答: 第一次请求: 构造方法->init() -> service() -> doGet()/doPost() 以后的请求:service() -> doGet()/doPost(); Servlet是单实例的. 2. 说出ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的差别 答: ArrayList Vector:以数组的方式存储,增.删慢,查.改快 ArrayList:线程不安全

CISP/CISA 每日一题 21

CISSP 每日一题(答)What is the term that identifies data ona disk after the data has supposedly been erased? Dataremanence What are the steps of a patch management program? Evaluate,test, apply, and audit patches What can be used to verify patches havebeen

zookeeper-非常重要的zab协议-《每日五分钟搞定大数据》

上篇文章paxos与一致性说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Broadcast即zookeeper"原子""广播"协议.它规定了两种模式:崩溃恢复和消息广播 恢复模式 什么时候进入? 当整个服务框架在启动过程中 当Leader服务器出现网络中断崩溃退出与重启等异常情况 当有新的服务器加入到集群中且集群处于正常状态(广播模式),新服会与leader进行

经典算法题每日演练——第二十五题 块状链表

原文:经典算法题每日演练--第二十五题 块状链表 在数据结构的世界里,我们会认识各种各样的数据结构,每一种数据结构都能解决相应领域的问题,每一种数据结构都像 是降龙十八掌中的某一掌,掌掌毙命... 当然每个数据结构,有他的优点,必然就有它的缺点,那么如何创造一种数据结构 来将某两种数据结构进行扬长避短,那就非常完美了.这样的数据结构也有很多,比如:双端队列,还有就是今天讲的 块状链表, 我们都知道 数组 具有 O(1)的查询时间,O(N)的删除,O(N)的插入... 链表 具有 O(N)的查询时

经典算法题每日演练——第十五题 并查集

原文:经典算法题每日演练--第十五题 并查集 这一篇我们看看经典又神奇的并查集,顾名思义就是并起来查,可用于处理一些不相交集合的秒杀. 一:场景 有时候我们会遇到这样的场景,比如:M={1,4,6,8},N={2,4,5,7},我的需求就是判断{1,2}是否属于同一个集合,当然实现方法 有很多,一般情况下,普通青年会做出O(MN)的复杂度,那么有没有更轻量级的复杂度呢?嘿嘿,并查集就是用来解决这个问题的. 二:操作 从名字可以出来,并查集其实只有两种操作,并(Union)和查(Find),并查集

经典算法题每日演练——第五题 字符串相似度

原文:经典算法题每日演练--第五题 字符串相似度 这篇我们看看最长公共子序列的另一个版本,求字符串相似度(编辑距离),我也说过了,这是一个非常实用的算法,在DNA对比,网 页聚类等方面都有用武之地. 一:概念 对于两个字符串A和B,通过基本的增删改将字符串A改成B,或者将B改成A,在改变的过程中我们使用的最少步骤称之为“编辑距离”. 比如如下的字符串:我们通过种种操作,痉挛之后编辑距离为3,不知道你看出来了没有? 二:解析 可能大家觉得有点复杂,不好理解,我们试着把这个大问题拆分掉,将"字符串