首页 > 其他 > 详细

每日五题(网络协议)

时间:2017-07-09 19:15:12      阅读:238      评论:0      收藏:0      [点我收藏+]

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

答:
技术分享

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

(3)网络层 网络层传送的PDU称为分组或包(packet),在物理网络间传送分组,负责将源端主机的报文通过中间转发结点传送到 目的端。

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

(4)传输层 传输层传输的PDU称为报文(message)。传输层为源结点和目的结点的用户进程之间提供端到端的可靠的传输服务。端 到端的传输指的是源结点和目的结点的两个传输层实体之间,不涉及路由器等中间结点。为了保证可靠的传输服务。 传输层具备下面一些功能:面向连接、流量控制与拥塞控制、差错控制相网络服务质量的选择等。 (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

每日五题(网络协议)

原文:http://www.cnblogs.com/zhchoutai/p/7142359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!