博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络编程与网络框架
阅读量:2359 次
发布时间:2019-05-10

本文共 1692 字,大约阅读时间需要 5 分钟。

1.网络分层:

    从上到下分别是:应用层、传输层、网络层、数据链路层和物理层。

    1.1:物理层:

            物理层负责比特流在节点间的传输(即负责物理传输),该层的协议既与链路有关,也与传输介质有关,通俗来讲就是把计算机连接起来的物理手段。

    1.2:数据链路层:

            该层控制网络层与物理层之间的通信,其主要功能是如何在不可靠的物理线路上进行数据的可靠传递。为了保证传输,从网络层接收到的数据分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及纠错和控制信息。其中的地址确定了帧将发送何处,而纠错和控制信息则确保帧无差错到达。如果在传送数据时,接受点检测到所有数据中有差错,就要通知发送方重发这一帧。

    1.3: 网络层:

           网络层决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中的节点A 到另一个节点B 的最佳路径。

    1.4:传输层:

          该层位两台主机上的应用程序提供端到端的通信。相比之下,网络层的功能是建立主机到主机的通信。传输层有两个传输协议:TCP(传输控制协议)和 UDP(用户数据报协议)。其中,TCP是一个可靠的面向链接的协议,UDP是不可靠的或者说无连接的协议。

    1.5:应用层:

         应用程序收到传输层的数据后,接下来就要进行解读。解读必须事先规定好格式,而应用层就是规定程序的数据格式的。它的主要协议有:HTTP、FTP、Telnet、SMTP、POP3等。

2.TCP的三次握手与四次挥手:

         位码即tcp标志位,有6种标示:

               SYN(synchronous建立联机)
               ACK(acknowledgement 确认)
               PSH(push传送)
               FIN(finish结束)
               RST(reset重置)
               URG(urgent紧急)
               Sequence number(顺序号码)
               Acknowledge number(确认号码)
         客户端TCP状态迁移:
               CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
         服务器TCP状态迁移:
               CLOSED->LISTEN->SYN收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

         (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

         (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

         (3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

          断开连接时需要进行四次挥手:

         (1)第一次挥手:客户端设置seq和ACK,向服务端发一个FIN报文段。此时,客户端进入FIN_WAIT_1状态,表示客户端没有数据要发送给服务端;

         (2)第二次挥手:服务端收到了客户端发送的FIN报文段,向客户端回了一个ACK报文段。

         (3)第三次挥手:服务端向客户端发送FIN报文段,请求关闭连接,同时服务端进入LAST_ACK状态。

         (4)第四次挥手:客户端收到服务端发送的FIN报文段,向服务端发送ACK报文段,然后客户端进入TIME_WAIT状态。服务端收到客户端的ACK报文段以后,就关闭连接。此时,客户端等待2MSL(最大报文段生存时间)后依然没有收到回复,则说明服务端已正常关闭,这样客户端也可以关闭连接了。

          如果有大量的连接,每次在连接、关闭时都要经历三次握手、四次挥手,这很显然会造成性能低下。因此,HTTP有一种叫作keepalive connctions的机制,它可以在传输数据后仍然保持连接,当客户端需要再次获取数据时,直接使用刚刚空闲下来的连接而无须再次握手。

转载地址:http://ggjtb.baihongyu.com/

你可能感兴趣的文章
CLDC http://www.itisedu.com/phrase/200605041045465.html
查看>>
移植KVM到arm-linux(1) http://tech.jayya.com/2007/11/28/porting-kvm-to-armlinux.html
查看>>
程序随机启动的新方法 http://www.zaoxue.com/article/tech-14823.htm
查看>>
打印自身的程序杂谈
查看>>
c#复制自身程序
查看>>
100个句子记完的7000单词——俞敏洪
查看>>
50种强大的CSS技术
查看>>
music Visualization - Interactive visualization tool 3D Music Visualization Plug-in.Ride The Wave!
查看>>
real-time music visualizations
查看>>
教大家如何下載土豆,56,youku等在綫視頻網站視頻
查看>>
Linux发行版图标大全
查看>>
对等计算与普适计算
查看>>
揭秘Linux内核调试器之内幕
查看>>
Window关机函数ExitWindowsEx详解 - dwdm - 博客园
查看>>
VC《介绍一种巧妙的删除程序自己的方法》 - 电脑教程 - 天天加油
查看>>
在线语音留言系统 http://qian-xiong.blogspot.com/2007/03/blog-post_2003.html
查看>>
用Agent+ASP技术制作语音聊天室http://www.23js.net/2632.html
查看>>
Flash Media Server 2使用入门基础http://blog.breakn.net/article.asp?id=267
查看>>
RAZZ: 在线录音小工具http://www.wangtam.com/50226711/razz_ce_48250.php
查看>>
视频控件 - NCTVideoStudio 下载
查看>>