zoukankan      html  css  js  c++  java
  • 什么是Socket:

    先了解一些前提:

    网络由下往上分为 物理层 、数据链路层 、 网络层 、 传输层 、 会话层 、 表现层 和 应用层。
    通过初步了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。
    TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。

    关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:
    我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议。
    应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。
    WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”


    什么是Socket:
    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
    建立网络通信连接至少要一对端口号(socket)。
    socket本质是编程接口(API),对TCP/IP协议的封装。
    它的出现只是使得程序员更方便地使用TCP/IP协议栈而已。
    socket本身并不是协议,它是应用层与TCP/IP协议族通信的中间软件--抽象层,是一组调用接口(TCP/IP网络的API函数)
    TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。
    HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

    socket在哪里?
    TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。
    这个就像操作系统会提供标准的编程接口,比如win32编程接口一样。
    TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

    HTTP是轿车,提供了封装或者显示数据的具体形式;
    Socket是发动机,提供了网络通信的能力。

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

    socket在哪里

  • 相关阅读:
    【linux】——FreeBSD 建立 SSH 连接慢的解决方法
    【网络编程】——connect函数遇见EINTR的处理
    【C】——幻方算法
    【C】——实现tree命令
    【数据结构】——较规范的链表操作方法
    【网络编程】——ne-snmp开发实例1
    【linux】——cscope
    【LINUX】——如何配置宿主机和虚拟机IP在同一网段
    sort /tmp space issue
    桑梓桑榆
  • 原文地址:https://www.cnblogs.com/sinsenliu/p/9560107.html
Copyright © 2011-2022 走看看