计算机网络

TCP/IP协议传输层(TCP/UDP),应用层(HTTP),S

2019-05-09  本文已影响0人  太阳和风与旅行者

上篇《网络七层协议》中我们简单介绍了TCP/IP协议的七大层,在七大层中,下层主要是为上层服务。在我们移动开发学习中,接触运用比较多的是其中的传输层(TCP/UDP)和应用层,本片将详细介绍这两个层中我们大概需要掌握的知识点。

一.传输层和应用层的联系

顾名思义,传输层的作用就是传输数据,而应用层是对于数据的识别和处理。因此如果想要数据传输有
意义,则需要有应用层对其识别解读处理,此时需要使用到应用层协议,比如HTTP、FTP、TELNET等

二.传输层(TCP/UDP)

传输层提供了两种到达目标网络的方式

我们知道了在网络传输过程中。可以采用TCP或者UDP这两种传输协议去达成目的,那么这两种协议之间有什么却别呢?在开发过程中,又是什么样的场景对应选择何种传输协议呢?

在阐述TCP和UDP协议的区别之前,有必要了解一下TCP链接的三次握手(UDP没有):

SYN(同步标志)是TCP/IP建立连接时使用的握手信号,TCP连接的第一个包,非常小的数据包
ACK(确认标志)大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,
              Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。

1.第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
2.第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
3.第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。客户端与服务器开始传输数据

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)

TCP与UDP各自特点

TCP与UDP的区别:

三.Socket

我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。

实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

上一篇下一篇

猜你喜欢

热点阅读