http://blog.csdn.net/fightper/article/details/9715913
关于,http socket tcp/ip 区别与联系.我们首先应该了解一些基础知识.
OSI:
是Open System Interconnect的缩写,意为开放式 系统 互联。 国际标准化组织 (ISO)制定了OSI模型。这个模型把 网络 通信的工作分为7层,分别是 物理层 、 数据链路层 、 网络层 、 传输层 、 会话层 、 表示层 和 应用层 。
TCP/IP:
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/ 因特网 互联协议,又名网络 通讯协议 ,是Internet最基本的协议、Internet国际 互联网 络的基础,由 网络层 的IP协议和 传输层 的TCP协议组成。
从协议 分层模型 方面来讲,TCP/IP由四个层次组成: 网络接口层 、 网络层 、 传输层 、 应用层 。
与OSI功能相比:
网络层对应着OSI的网络层
socket :
通常也称作" 套接字 ",用于描述IP 地址 和端口,是一个通信链的句柄。在Internet上的 主机 一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
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等等。网络有一段关于socket和TCP/IP协议关系的说法比较容易理 解:
“TCP/IP只是一个协议栈,就像操作
系统 的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”
“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”
实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。
参考:
http://baike.baidu.com/view/113948.htm
http://baike.baidu.com/view/13870.htm http://baike.baidu.com/view/7649.htm?fromId=7729
http://www.cnblogs.com/riacool/archive/2010/12/14/1905404.html
http://www.2cto.com/net/201206/137852.html