TCP,IP,HTTP,SOCKET的介绍以及它们这间的区别和联系技术提升了吗

【TCP,IP,HTTP,SOCKET的介绍以及它们这间的区别和联系技术提升了吗】小编在这段时间遇到好多广大网友的咨询 , 今天免费分享一下关于电脑系统和电脑操作教程的知识大全 , 这篇文字是关于TCP,IP,HTTP,SOCKET的介绍以及它们这间的区别和联系技术提升了吗的文字 , 欢迎大金仔细阅读 , 如果不懂请多多关注我们网址陆续更新更多更全面的电脑教程 。
TCP,IP,HTTP,SOCKET区别和联系
网络由下往上分为: 对应
物理层--
数据链路层--
网络层-- IP协议
传输层-- TCP协议
会话层--
表示层和应用层-- HTTP协议
socket
则是对TCP/IP协议的封装和应用(程序员层面上) 。 也可以说 , TPC/IP协议是传输层协议 , 主要解决数据 如何在网络中传输 , 而HTTP是应用层协议 , 主要解决如何包装数据 。 关于
我们在传输数据时 , 可以只使用(传输层)TCP/IP协议 , 但是那样的话 , 如 果没有应用层 , 便无法识别数据内容 , 如果想要使传输的数据有意义 , 则必须使用到应用层协议 , 应用层协议有很多 , 比如HTTP、FTP、TELNET等 , 也 可以自己定义应用层协议 。 WEB使用HTTP协议作应用层协议 , 以封装HTTP文本信息 , 然后使用TCP/IP做传输层协议将它发到网络上 。
我们平时说的最多的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等等 。 网络有一段关于socket和TCP/IP协议关系的说法比较容易理 解:
TCP/IP只是一个协议栈 , 就像操作系统的运行机制一样 , 必须要具体实现 , 同时还要提供对外的操作接口 。 这个就像操作系统会提供标准的编程接口 , 比如win32编程接口一样 , TCP/IP也要提供可供程序员做网络开发所用的接口 , 这就是Socket编程接口 。
总结一些基于基于TCP/IP协议的应用和编程接口的知识 , 也就是刚才说了很多的 HTTP和Socket 。
CSDN上有个比较形象的描述:HTTP是轿车 , 提供了封装或者显示数据的具体形式;Socket是发动机 , 提供了网络通信的能力 。
实际上 , 传输层的TCP是基于网络层的IP协议的 , 而应用层的HTTP协议又是基于传输层的TCP协议的 , 而Socket本身不算是协议 , 就像上面所说 , 它只是提供了一个针对TCP或者UDP编程的接口 。
下面是一些经常在笔试或者面试中碰到的重要的概念 , 特在此做摘抄和总结 。
一 。 什么是TCP连接的三次握手
第一次握手:客户端发送syn包(syn=j)到服务器 , 并进入SYN_SEND状态 , 等待服务器确认;
第二次握手:服务器收到syn包 , 必须确认客户的SYN(ack=j+1) , 同时自己也发送一个SYN包(syn=k) , 即SYN+ACK包 , 此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包 , 向服务器发送确认包ACK(ack=k+1) , 此包发送完毕 , 客户端和服务器进入ESTABLISHED状态 , 完成三次握手 。
握手过程中传送的包里不包含数据 , 三次握手完毕后 , 客户端与服务器才正式开始传送数据 。 理想状态下 , TCP连接一旦建立 , 在通信双方中的任何一方主动关闭 连接之前 , TCP 连接都将被一直保持下去 。 断开连接时服务器和客户端均可以主动发起断开TCP连接的请求 , 断开过程需要经过四次握手(过程就不细写了 , 就是服务器和客 户端交互 , 最终确定断开)
二 。 利用Socket建立网络连接的步骤
建立Socket连接至少需要一对套接字 , 其中一个运行于客户端 , 称为ClientSocket  , 另一个运行于服务器端 , 称为ServerSocket 。

推荐阅读