socket 网络编程基本的概念2

默认分类 | 2017-10-10 10:01:54 | 72次阅读 | 0评
谈到socket,什么是socket呢? 如果是在前不久如果有人问我,我会这样回答:“socket就是TCP/ip嘛”或者就是说“socket 就是套接字”其他的脑子里什么都没有了......,如果你的回答跟我一样.......那什么都别说了,接下来就跟我一起重新了解下socket吧。希望接下来的介绍能帮助到你,如果讲的有问题,希望小伙伴能給于指正。
在介绍一系列的概念之前,首先允许我提出几个问题,大家思考一下,大家带着问题去学习应该会更好一些.
1.什么是Socket?
2.什么是TCP/IP?
3.Socket 与TCP/IP 的关系?
4.osi参考模型
OSI概念:
      Open System Interconnect 开放系统互连参考模型 是有ISO国际标准化定义的。
模型目的:网络是不同操作系统的通信方式,而不同操作系统进行通信需要遵守一定的规则OSI 规范了不同操作系统的互联标准,使两个不同的系统能够较容易的通信而不需要改变底层的硬件或软件的逻辑
OSI模型分层
    OSI把网络按照层次分为七层,由到上分别为 物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

OSI七层框架每一层具有不同功能,每一层都有不同协议的实现

本周主要介绍socket和传输层TCP,所以OSI 参考模型和它的七层框架先简单介绍到这里,但不代表它不重要,如果想深入了解可参考地址:http://wenku.baidu.com/link?url=YQHDU7_zU3fcvCgYkyjwwrEdvnF1o9hlzyXNCI4HZ8y4tidxRy6isfILVDRlHEorEu0eGgZISgptlOTX605U88_bsVnPYntMJ6SEiK_0xSO

下面介绍OSI 参考模型中 传输层TCP 
介绍TCP协议之前,首先了接下TCP/IP 参考模型
TCP/IP参考模型

图片来自:http://book.51cto.com/art/200706/49351.htm
原来就只是这些啊。TCP/IP参考模型,将协议分为了四层
应用层 对应OSI中的应用层,表示层,会话层
传输层对应OSI中的传输层
IP层对应OSI中的网络层
网络接口层对应OSI中的数据链路层和物理层
不过我们想了解更多一些。接下面图片的是引自“UNIX网络编程”

为什么套接字提供的是从OSI模型的顶上三层进入传输层接口?这样设计有两个理由。
理由一:顶上三层处理具体网络应用(如FTP,Telnet或者HTTP)的所有细节,却对通信细节了解很少,底下四层对具体网络应用了解不多,却处理所有的通信细节,发送数据,等待确认,給无序到达的数据排序,计算并校正校验,等等。
理由二:顶上三层通常构成所谓的用户进程,底下四层却通常作为操作系统内核的一部分提供。
用户进程操作的是应用层,内核操作的是传输层及传输层一下的协议

如果想了解更过,只有靠自己了翻阅资料了...

什么是TCP/IPUDP

         TCP/IPTransmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。

         TCP 是传输控制协议,是一个面向连接的协议,为用户进程提供可靠的全双工字节流。。TCP 套接字是一种流套接字(stream socket).TCP关心确认,超时和重传之类的细节。大多数网络应用程序都在使用TCP。注意:TCp既可以使用IPv4,也可以使用IPv6.
         UDPUser Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。

         UDP是一个无连接协议,UDP套接字是一种数据报套接字(datagram socket)。UDP数据报不能保证最终到达它们的目的地。和TCP一样,UDP既可以使用IPv4,也可以使用ipv6.
        这里有一张图,表明了这些协议的关系。
        ICMP:网际控制消息协议(Internet Control Message Protocol),ICMP处理在路由器和主机之间流通的错误和控制消息

        IGMP 网际组管理协议(Internet Group Management Protocol)IGMP用于多播

        ARP:地址解析协议(address resolution protocol)ARP把一个ipv4地址映射成一个硬件地址。ARP通常用于以太网,令牌网等。
                                                                                

                                                                        图1

       TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IPUDP的关系了吧。
Socket在哪里呢?
       
在图1中,我们没有看到Socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。



2

       原来Socket在这里。
Socket是什么呢?
       Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

博友评论,共0条
最新评论