美文网首页计算机网络
Socket详解(一)

Socket详解(一)

作者: 羞涩的老湿鸡 | 来源:发表于2019-04-15 14:58 被阅读0次

光会使用Socket的接口(API)去进行基础编程是远远不够的,我们还必须还要了解整个网络通信的传输流程。OSI开放式系统互联,全称(Open System Interconnection),OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

何为Socket?


第一篇文章我们首先简单介绍一下什么是Socket。在百度百科中是这样介绍,网络中,通过开辟一个双向的通信连接来实现数据的交换,这个连接的一端称为一个Socket。

建立一个网络通信连接至少要一对端口号(socket),socket本质是编程接口(API),是对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

Socket实际上是应用层与传输层之间的桥梁。


OSI七层模型与TCP/IP4层模型


OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

TCP/IP四层模型分别为网络接口层(也可称理解为数据链路层和物理层)、互联网层(也称网络层)、传输层、应用层。

目前来讲OSI七层模型基本上被TCP/IP 4层模型淘汰。在当今世界上没有大规模使用。因此我们本文只着重介绍TCP/IP四层模型。

何为传输层?


传输层(Transport Layer),是TCP/IP模型层中最重要,也是最关键的一层。

传输层主要为两台主机上的应用提供端对端的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。(一个端口对应一个软件)

传输层的TCP和UDP可以接收来自多个应用程序的数据流,用端口号标识他们。然后把他们送给Internet网络层处理。同时TCP和UDP接收来自Internet网络层的数据包,用端口号区分他们,然后交给不同的应用程序。

传输层的两大协议:TCP(传输控制协议)UDP(用户数据包协议)

TCP是可靠面向连接传输协议,而UDP是不可靠或者说无连接协议

UDP更像是手机发送短信,不需要关心对方号码是否是空号(网络不可到达),是否是开机状态。只管发出去即可,免不关心对方是否收到(丢包)。

而TCP更像是打电话,首先要确认对方号码是否是空号,对方是否开机(网络可以到达)、是否有信号。最后还要确认对方是否有接听(通信连接)。

传输层的由来?


网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序。后续文章中我们会介绍网络层ip与链路层mac。

下一篇Socket详解(二)讲解网络层部分

相关文章

  • Socket详解(四)

    Socket详解(一)Socket详解(二)Socket详解(三) 前三篇文章已经分别介绍了传输层、网络层、网络接...

  • Socket详解(三)

    Socket详解(一) Socket详解(二) 前两篇文章已经分明介绍传输层与网络层;本篇文章介绍链路层。 介绍链...

  • Python高阶(四) - Socket编程

    [TOC] Python Socket 编程详解 Python 提供了两个基本的 socket 模块: Socke...

  • Socket详解《一》

    本文使用最基础的socket API实现客户端和服务端的通信。 socket 是c语言的API,使用过程中使用到大...

  • Socket详解(一)

    光会使用Socket的接口(API)去进行基础编程是远远不够的,我们还必须还要了解整个网络通信的传输流程。OSI开...

  • iOS知识点收集

    一、socket详解 http://www.coderyi.com/archives/429 二、autolayo...

  • socket详解

    socket详解:https://blog.csdn.net/hdfqq188816190/article/det...

  • Http

    来源于:http详解 关于Socket,谈谈TCP/IP 和 UDP的理解 Socket是一个用于传输网络数据的工...

  • Socket详解

    在客户端/服务器通信模式中,Socket是双方通信通道的抽象封装,用户可通过配置Socket的参数并构建Socke...

  • Socket详解

    说白了,Socket就是服务器跟客户端通讯用的。 网络间如何进行通信? 首先,在网络中,如何判断,“李白”是“李白...

网友评论

    本文标题:Socket详解(一)

    本文链接:https://www.haomeiwen.com/subject/kcpuwqtx.html