数据分段在OSI哪一层( )
传输层
数据分段是在传输层中完成的,传输层定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
传输层(Transport Layer)是OSI中最重要, 最关键的一层,是唯一负责总体的数据传输和数据控制的一层.传输层提供端到端的交换数据的机制.传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。通常不同应用程序要发送和接收的数据在传输层不同端口发出或者收入,也就是数据分段。为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。包括全双工或半双工、流控制和错误恢复服务;传输层把消息分成若干个分组,并在接收端对它们进行重组。不同的分组可以通过不同的连接传送到主机。这样既能获得较高的带宽,又不影响会话层。在建立连接时传输层可以请求服务质量,该服务质量指定可接受的误码率、延迟量、安全性等参数,还可以实现基于端到端的流量控制功能下列关于网络编程错误的是(AD)A.TCP建立和关闭连接都只需要三次握手B.主动关闭的一端会出现TIME_WAIT状态C服务端编程会调用listen(),客户端也可以调用bind()D.UDP是可靠服务对于C选项有连接的socket客户端通过调用 Connect函数在socket数据结构中保存本地和远端信息,无须调用bind(),因为这种情况下只需知道目的机器的IP地址,而客户通过哪个端口与服务器建立连接并不需要关心,socket执行体为你的程序自动选择一个未被占用的端口,并通知你的程序数据什么时候打开端口。(当然也有特殊情况,linux系统中rlogin命令应当调用bind函数绑定一个未用的保留端口号,还有当客户端需要用指定的网络设备接口和端口号进行通信等等)总之: 1.需要在建连前就知道端口的话,需要 bind 2.需要通过指定的端口来通讯的话,需要 bind三次握手,四次挥手: 3次握手的特点: 1.客户端向服务端发送连接请求,SYN=x,客户端进入SYN_SEND状态,等待服务器确认;2.服务器收到SYN消息后给出请求应答SYN=x+1,ACK=y,服务器进入SYN_RECV状态; 3.客户端收到ACK+SYN包后,向服务器发送确认消息(SYN+1)。此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。4次断开 1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求 2 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1 3 由B 端再提出反方向的关闭请求,将FIN置1 4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束A.tcp建立连接需要三次握手,断开连接需要四次握手;因为服务端的LISTEN状态下socket当收到syn报文请求连接后,可以把syn和ack放进同一个报文里发送。但关闭连接时,当收到对方发来的FIN报文通知时,仅仅表示对方没有数据发送给自己了,不代表自己没有数据要发送给对方,此时仍可以发送一些数据给对方后,再发送FIN报文关闭连接。B.被动端关闭时仅有两个状态,close_wait和last_ack状态。C.bind()把一个本地协议地址,赋予一个套接字,两端均可以使用D.UDP是不可靠的服务。下面说法正确的有(BC)A短连接多用于操作频繁,点对点的通讯,且连接数不能太多的情况B数据库的连接一般都用长连接C.web网站的http服务一般都用短连接D.长连接多用于并发量大,但是每个用户又不需频繁操作的情况数据库中长连接和短连接的区别分析: http://blog.sina.com.cn/s/blog_6aa3070701014i4l.html什么是长连接?
其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。
通常的短连接操作步骤是:
连接-》数据传输-》关闭连接;
而长连接通常就是:
连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;
这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了
什么时候用长连接,短连接?
长连接主要用于在少数客户端与服务端的频繁通信,因为这时候如果用短连接频繁通信常会发生Socket出错,并且频繁创建Socket连接也是对资源的浪费。
但是对于服务端来说,长连接也会耗费一定的资源,需要专门的线程(unix下可以用进程管理)来负责维护连接状态。
总之,长连接和短连接的选择要视情况而定。A是长连接多用于操作频繁,点对点的通讯,且连接数不能太多的情况. D并发量大,用长连接的话,服务端可能会无法响应其他客户端,因为服务器端的资源数可能不够用.PING命令使用ICMP的哪一种code类型(Echo回响)ping命令采用了 ICMP的7和0协议端口 ping 的去包采用的是7 回来的包采用的是0 返回的包叫做echo-replyPing是Windows下的一个命令,在Unix和Linux下也有这个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。 Ping实际上利用的就是ICMP ECHO和ICMP ECHO REPLY包来探测主机是否存在,所以Ping程序的流程十分简单:发送ICMP ECHO包---- > 接收ICMP ECHO REPLY包 发送ICMP ECHO包时填充Identifier为进程ID, Sequence Number为从0递增计数,data填充为发送时间 接收ICMP ECHO REPLY包时检查Identifier, Sequence Number是否正确,通过IP报头的源地址字段获得回送报文的主机地址是否正确ping命令就是应用ICMP协议中的回响机制来探寻主机是否存在。请从下列给定地址中找出与192.168.1.110/27属于同一个子网的主机地址(CD)A.192.168.1.94B.192.168.1.96C.192.168.1.124D.192.168.1.12627位的子网掩码,用2进制表示就是: 11111111.11111111.11111111.11100000 192.168.1.110,最后8位用用2进制表示为: 01101110. 因此,和它同一个子网的主机地址最后8位中的前三位应该相同。 01100000的10进制为96,也就是说最后8位最小应该