网络通信 订阅
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。应根据需要来选择合适的网络协议。 展开全文
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。应根据需要来选择合适的网络协议。
信息
领    域
信息科学
拼    音
wǎng luòtōng xìn
实现方式
网络通信协议
中文名
网络通信
目    的
信息交流与传递
外文名
Network Communications
网络通信名词定义
通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺 利地进行交流。从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。
收起全文
精华内容
下载资源
问答
  • 文章目录《Netty 4核心原理》 学习总结第一章 网络通信原理1.1 网络基础架构 - C/S信息传输流程1.2 TCP/IP 五层模型详解(4层与7层是对5层模型的缩减或拆解)1.3 网络请求原理全过程(浏览器中输入url发生了什么)...

    《Netty 4核心原理》 学习总结

    第一篇 I/O基础篇

    第一章 网络通信原理

    1.1 网络基础架构 - C/S信息传输流程

    • 完成一次网络通讯的5个步骤:
      • 1.客户端将应用内存中的数据发送/copy到操作系统内存
      • 2.操作系统按照客户端指定的协议,调用网卡发送数据
      • 3.网络传输
      • 4.服务端调用系统接口,将数据从计算机内存copy到应用内存
      • 5.服务端操作系统按照发送时的协议,从网卡读取数据,并将数据copy给应用

    1.2 TCP/IP 五层模型详解(4层与7层是对5层模型的缩减或拆解)

    • 应用层
      • 用户使用的应用即应用层操作
      • 协议:DNS协议、http、FTP、SMTP、
    • 传输层
      • 建立端口与端口的通信机制,TCP/UDP协议
    • 网络层
      • 网络普及:全世界的网络是由一个个小的局域网组成,数据包只能在一个局域网(广播域)内发送,跨局域网通信需要通过路由转发
      • 作用:区分哪些计算机在同一广播域,那些不在。根据区分结构选择使用广播或路由的方式进行数据发送
      • 原理:ip与子网掩码进行与(&)操作,结果一致则证明在同一个子网络
    • 数据链路层
      • 单纯的0/1信号没有任何意义,本层的功能就是定义电信号的分组方式,多少位为一组,每组代表什么意思,
      • 例如:请求报文中head固定18个字节,data为46字节,那前18位0/1就代表head(head中包含发送者地址6字节,接收者地址6字节,数据类型6字节)
    • 物理层
      • 根据电压的高低,代表0/1信号进行传输

    1.3 网络请求原理全过程(浏览器中输入url发生了什么)

    • 1.浏览器中输入访问地址:www.baidu.com
    • 2.通过DNS域名系统服务器(基于UDP协议)获得IP地址
    • 3.想目标机器发起http请求,数据内容包含数据格式、类型、http协议相关等
    • 4.TCP协议:TCP数据包嵌入http数据包,TCP数据包需要设置访问端口
    • 5.IP协议:TCP数据包嵌入到IP数据包,IP数据包需要设置双方的IP地址
    • 6.以太网协议:ip数据包嵌入到以太网数据包,以太网数据包设置双方的MAC地址
    • 7.服务响应

    1.4 网络通信之“魂” —— socket

    • 通信的基础
      • 两个进程间想要通信的最基本前提是存在一个唯一标识,能够识别一个进程
      • 在单机中可以用PID标识一个进程,但是在网络中就不行了
      • 根据本章内容我们不难得到:ip地址能够标识唯一主机,TCP层的协议和端口能够标识唯一进程,所以使用IP+协议+端口就能唯一标识网络中的进程
    • socket通常叫做套接字,socket是应用层和传输层之间的一个抽象,他将TCP/IP层的操作抽象为简单的接口调用,实现网络中的通信。

    第二章 java I/O演进之路

    • 2.3.1 阻塞与非阻塞
      • BIO的阻塞
        • 当一个线程调用read()或write()时,当前线程会被阻塞,知道有可用数据读取或数据读取完成
      • NIO的非阻塞
        • 当一个线程通过通道(Channel)发送读取数据请求时,如果没有数据准备好,直接返回,不会阻塞当前线程,在数据接收完成,变成可读取之前,当前线程可以做其他事。非阻塞也是这样
    • 2.3.2 Selector(选择器)在NIO中的作用
      • Selector允许一个单独的线程来监听多个输入通道(Channel),即多个Channel可以注册到一个Selector上,然后selector使用一个线程来“选择”可用channle,可用channel即已经有可以处理的数据输入或已经准保好数据的通道
    • 2.3.3 AIO简介
      • 真正的AIO依赖于操作系统,这里大家需要掌握Epoll相关知识
      • 由于AIO需要操作系统按照aio_read的参数,将数据写入到内核缓存中后,再通知应用来获取数据,所以AIO体现在准保数据(接收数据)、数据拷贝都由操作系统来完成,完成后通知应用即可。

    第二篇 初始Netty

    2.1 I/O 的问世

    • 2.1.1 什么是I/O

      • 在UNIX中,一切皆文件,文件就是一串二进制流。而I/O就是对这些流的手法操作。
      • 计算机中有很多文件(流),怎么知道要操作哪个流,是由操作系统内核会创建FD(文件描述符)标识,对FD的操作就是对流的操作。
      • 创建一个Socket,通过系统函数会返回一个FD,socket的操作就变成了对流的操作。
    • 2.1.2 I/O交互流程

      • 磁盘I/O交互分两阶段:
        • 操作系统:文件数据从磁盘到内核空间(操作系统)
        • 应用程序:数据从内核空间到用户空间
      • 网络I/O包含两个阶段
        • 等待网络数据到达网卡,数据读取到内核缓冲区
        • 从内核缓冲区复制数据到用户空间
    • 2.1.3 五种I/O通信模式

      • 图:略
      • 总结与对比:整个IO过程分为两部分:发起recvfrom(接收数据)时等待数据包,数据拷贝到用户空间
        • 阻塞IO:整个流程阻塞;如果有多个请求,需要开启多个线程来支持
        • 非阻塞IO:数据拷贝阻塞;等待数据时轮训检查,可支持多请求,但请求时效性难以确定
        • 多路复用IO:等待数据、数据拷贝阻塞;等待数据阻塞是因为采用复用器selector,selector会监听注册进来的所有IO,发起recvfrom请求后会阻塞,任意请求数据准备完成,则返回处理。可支持多请求,时效性好
        • 信号驱动IO:应用启动时与系统建立SIGIO信号调用,当内核有数据包准备好时,想应用发送信号,应用再发起recvfrom请求阻塞(等待数据拷贝)获取数据
        • 异步IO:用户发起aio_readhan函数调用,参数包含:FD描述符,缓冲区指针、缓冲区大小及FD偏移量,内核接收到数据后便将数据按照入参写入缓存,完成后通知应用
    • 2.1.4 同步、异步;阻塞、非阻塞解答(不懂?接着看2.3你就明白了)

      • 同步、异步区别:请求发起方对结果的获取是主动发起还是被动通知的
        • 同步:请求发起方对结果是主动获取,eg:同步等待结果、轮训查询结果
        • 异步:请求方获取结果是被动通知的,eg:请求发起后,该干嘛干嘛,有结果了被调用方会主动发起请求或消息通知调用方
      • 阻塞与非阻塞:是对线程状态的描述,通常指IO阻塞
        • 阻塞:发起请求后,请求线程是挂起状态,只能等待结果
        • 非阻塞:发起请求后,请求时运行状态,还可以做其他事情

    2.3 从BIO到NIO的演进

    • 2.3.1 阻塞与非阻塞
      • BIO的阻塞
        • 当一个线程调用read()或write()时,当前线程会被阻塞,知道有可用数据读取或数据读取完成
      • NIO的非阻塞
        • 当一个线程通过通道(Channel)发送读取数据请求时,如果没有数据准备好,直接返回,不会阻塞当前线程,在数据接收完成,变成可读取之前,当前线程可以做其他事。非阻塞也是这样
    • 2.3.2 Selector(选择器)在NIO中的作用
      • Selector允许一个单独的线程来监听多个输入通道(Channel),即多个Channel可以注册到一个Selector上,然后selector使用一个线程来“选择”可用channle,可用channel即已经有可以处理的数据输入或已经准保好数据的通道
    • 2.3.3 AIO简介
      • 真正的AIO依赖于操作系统,这里大家需要掌握Epoll相关知识
      • 由于AIO需要操作系统按照aio_read的参数,将数据写入到内核缓存中后,再通知应用来获取数据,所以AIO体现在准保数据(接收数据)、数据拷贝都由操作系统来完成,完成后通知应用即可。

    第二篇 初始Netty


    展开全文
  • 13、python网络编程之网络通信协议

    千次阅读 2021-02-13 15:15:06
    python网络编程之网络通信协议 一、C/S与B/S架构 B/S架构 B/S架构中省去了客户端的开发,是基于浏览器(Browser)与服务端完成数据的通信 二、网络通信 什么是网络 网络是用物理链路将各个孤立的工作站或主机相连在...

    python网络编程之网络通信协议

    一、C/S与B/S架构

    在这里插入图片描述

    B/S架构

    B/S架构中省去了客户端的开发,是基于浏览器(Browser)与服务端完成数据的通信

    二、网络通信

    什么是网络

    网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。

    网络即一种物理链接介质

    什么是通信

    通信是人与人之间通过某种媒体进行的信息交流与传递。

    通信即数据与信息的传输

    什么是网络通信

    网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。

    网络通信即计算机与计算机之间通过物理介质和某种协议进行的数据与信息的传输

    了解了以上知识后我们就可以发现,计算机之间需要完成通信,必要的条件有两个:

    • 物理链接介质
    • 通信协议

    物理链接介质我们这里不做深入研究,下面我们来学习一下互联网的通信协议。

    三、互联网通信协议

    OSI协议

    OSI模型是由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI协议根据功能不同,分工不同,被人为的分为七层协议。

    实际中还有人划分为五层、四层协议

    七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

    五层划分为:应用层、传输层、网络层、数据链路层、物理层

    四层划分为:应用层、传输层、网络层、网络接口层

    在这里插入图片描述

    在这里插入图片描述

    为什么要有协议?

    协议用来规定数据的组成格式,是的不同的计算机之间可以识别传输的数据。

    物理层

    主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。在网络通信的过程中,物理层负责发送电信号。一组物理层数据称之为位。

    物理链路层:Ethernet

    我们知道单纯由0和1组成的电信号没有意义,无法进行识别,这时候我们需要物理链路层,它定义了电信号的分组方式。常见的物理链路层的协议有以太网协议(Ethernet)

    以太网协议规定:

    1. 一组数据称之为一个数据帧
    2. 数据帧分为两部分组成:头部 + 数据
      - 而在数据帧的头部中包含了源地址(6bytes)、目标地址 (6bytes)和数据类型(6bytes),其中的源地址和目标地址 均为mac地址。
      - 数据部分包含了网络层的整体数据内容
    3. 接入互联网的主机必须有一张网卡,每张网卡出厂时都有一个唯一的mac地址。
    4. 以太网的工作方式是广播

    网络层:IP

    网络层走的是IP协议,主要用于划分广播域,每一个广播域需要通过网关将包转发到公网,网关走的是路由协议。

    IP协议规定:

    1. 一组数据称之为一个数据包。
    2. 数据包分为头部和数据
      1. 头部包含源地址和目标地址,该地址是IP地址,IP地址分为网络部分和主机部分。主机部分即IP地址,网络部分即子网掩码,用于划分广播域。
      2. 数据包含传输层的整体数据内容

    在网络层还有一个非常重要的协议ARP协议,ARP协议是地址解析协议,它是根据IP地址获取物理地址(mac地址)的一个TCP/IP协议。IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。img

    传输层:TCP/UDP等

    TCP/UDP协议是基于端口的一种协议,端口范围是0-65535,期中0-1023端口为系统占用端口。

    有了tcp/udp协议后,我们可以通过ip+端口标识全世界范围内独一无二的一个基于网络通信的应用程序,但在基于tcp协议通信之前,必须建立一个双向通信的链接。一般通过三次握手建立一个双向通信的链接。

    在这里插入图片描述

    但在切断链接过程中是通过四次挥手进行切断。因为在切断链接的过程中有可能涉及到仍有一端再进行单向数据传输,只有当数据传输完成后这一向的链接才切断。

    img

    应用层:http,ftp等

    在应用层我们可以自定义协议,但自定义协议的工程过于庞大,软件开发中我们一般采用http、ftp等已存在的协议。应用层的协议也同样包含头部和数据两部分。

    展开全文
  • 网络通信原理

    千次阅读 多人点赞 2019-06-02 17:13:06
    一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序...网络通信原理 2.1 互联网的本质就是一系列的网络协议 一台硬件设备有了操作系统,然后装上软件你就可以...

    一.操作系统基础

        操作系统:(Operating System,简称OS)是管理和控制计算机硬件软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

    注:计算机(硬件)->os->应用软件

     

    二.网络通信原理

    2.1 互联网的本质就是一系列的网络协议

    一台硬件设备有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用。像这样,每个人都拥有一台自己的机器,然而彼此孤立。

    如何能让大家一起玩耍呢?------通过internet

    然而internet为何物呢?

    其实两台计算机之间通信两个人打电话之间通信的原理是一样的(中国有很多地区,不同的地区有不同的方言,为了全中国人都可以听懂,大家统一讲普通话)。

    普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?

    问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语。

     

    结论英语成为世界上所有人通信统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是

    一系列统一的标准,这些标准称之为互联网协议互联网的本质就是一系列的协议,总称为‘互联网协议’(Internet Protocol Suite)。

    互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准

     

    2.2 osi七层协议

    互联网协议按照功能不同分为osi七层tcp/ip五层tcp/ip四层

     

    每层运行常见物理设备

     

    2.3 tcp/ip五层模型讲解

    我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理

    首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解。每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。

    2.3.1 物理层

    物理层由来:上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网。

    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。利用光缆、电缆、双绞线、无线电波等把计算机连接起来。

    2.3.2 数据链路层

    数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。

    数据链路层的功能定义了电信号的分组方式

    以太网协议:

    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet

    ethernet规定:

    • 一组电信号构成一个数据包,叫做‘帧’。
    • 每一数据帧分成:报头head数据data两部分。
           head                        data                             

     

     

    head包含:(固定18个字节)

    • 发送者/源地址,6个字节。
    • 接收者/目标地址,6个字节。
    • 数据类型,6个字节。

    data包含:(最短46字节,最长1500字节)

    • 数据包的具体内容

    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

     

    mac地址:

    head中包含的源和目标地址由来:ethernet规定接入internet设备必须具备网卡,发送端和接收端的地址便是指网卡的地址即mac地址。

    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

     

    广播:

    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址

    ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

     

    2.3.3 网络层

    网络层由来:有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了,问题是世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,这会是一种灾难。

    上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送如果不是就采用路由的方式(向不同广播域/子网分发数据包)mac地址是无法区分的,它只跟厂商有关

    网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

    IP协议:

    • 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示。
    • 范围0.0.0.0-255.255.255.255。
    • 一个ip地址通常写成四段十进制数,例:172.16.10.1。

    ip地址分成两部分

    • 网络部分:标识子网
    • 主机部分:标识主机

    注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网。

    例:172.16.10.1与172.16.10.2并不能确定二者处于同一子网。

    子网掩码

    所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

     

    知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

     

    比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,

    172.16.10.1:10101100.00010000.00001010.000000001

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

     

    172.16.10.2:10101100.00010000.00001010.000000010

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

     

    结果都是172.16.10.0,因此它们在同一个子网络

    总结一下IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络

     

    ip数据包

    ip数据包也分为headdata部分,无须为ip包定义单独的栏位,直接放入以太网包的data部分

    head:长度为20到60字节

    data:最长为65,515字节。

    而以太网数据包的”数据”部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

     

    以太网头                ip 头                                     ip数据                                

     

     

     

    ARP协议

    arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议。

    arp协议功能广播的方式发送数据包,获取目标主机的mac地址。

     

    协议工作方式:每台主机ip都是已知的

    例如:主机172.16.10.10/24访问172.16.10.11/24

    一:首先通过ip地址和子网掩码区分出自己所处的子网。

    场景 数据包地址  
    同一子网 目标主机mac,目标主机ip  
    不同子网 网关mac,目标主机ip  

     

     

     

     

    二:分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)。

      源mac 目标mac 源ip 目标ip 数据部分
    发送端主机 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据

     

     

     

    三:这个包会以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac

     

    2.3.4 传输层

    传输层的由来:网络层的ip帮我们区分子网以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

    传输层功能建立端口到端口的通信

    补充:端口范围0-65535,0-1023为系统占用端口。

     

    tcp协议:

    可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    以太网头 ip 头               tcp头               数据                                                    

     

     

    udp协议:

    不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    以太网头 ip头                      udp头                            数据                                           

     

     

    tcp报文

    tcp三次握手和四次挥手

     

    2.3.5 应用层

    应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。

    应用层功能规定应用程序的数据格式

    例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层

     

     

    2.3.6 socket

            我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程

    能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信

    socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

     

    三.网络通信实现

    想实现网络通信每台主机需具备四要素:

    • 本机的IP地址
    • 子网掩码
    • 网关的IP地址
    • DNS的IP地址

    获取这四要素分两种方式:

    • 1.静态获取:即手动配置
    • 2.动态获取:通过dhcp获取
    以太网头 ip头 udp头 dhcp数据包

     

     

    (1)最前面的”以太网标头”,设置发出方(本机)的MAC地址接收方(DHCP服务器)的MAC地址前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。

     

    (2)后面的”IP标头”,设置发出方的IP地址接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0接收方的IP地址设为255.255.255.255

     

    (3)最后的”UDP标头”,设置发出方的端口接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口接收方是67端口

    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255于是DHCP服务器知道”这个包是发给我的”,而其他计算机就可以丢弃这个包

    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址发送回去一个”DHCP响应”数据包。这个响应包的结构也是类似的,以太网标头MAC地址双方的网卡地址IP标头IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分

    新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。

     

    四.网络通信流程

    1.本机获取

    • 本机的IP地址:192.168.1.100
    • 子网掩码:255.255.255.0
    • 网关的IP地址:192.168.1.1
    • DNS的IP地址:8.8.8.8

    2.打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

    3.dns协议(基于udp协议)

     

    13台根dns:

    A.root-servers.net198.41.0.4美国
    B.root-servers.net192.228.79.201美国(另支持IPv6
    C.root-servers.net192.33.4.12法国
    D.root-servers.net128.8.10.90美国
    E.root-servers.net192.203.230.10美国
    F.root-servers.net192.5.5.241美国(另支持IPv6
    G.root-servers.net192.112.36.4美国
    H.root-servers.net128.63.2.53美国(另支持IPv6
    I.root-servers.net192.36.148.17瑞典
    J.root-servers.net192.58.128.30美国
    K.root-servers.net193.0.14.129英国(另支持IPv6)
    L.root-servers.net198.32.64.12美国
    M.root-servers.net202.12.27.33日本(另支持IPv6)

     

    域名定义:http://jingyan.baidu.com/article/1974b289a649daf4b1f774cb.html

    顶级域名:以.com,.net,.org,.cn等等属于国际顶级域名,根据目前的国际互联网域名体系,国际顶级域名分为两类:类别顶级域名(gTLD)和地理顶级域名(ccTLD)两种。类别顶级域名是                    以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等结尾的域名,均由国外公司负责管理。地理顶级域名是以国家或地区代码为结尾的域名,如"CN"代表中国,"UK"代表英国。地理顶级域名一般由各个国家或地区负责管理。

    二级域名:二级域名是以顶级域名为基础的地理域名,比喻中国的二级域有,.com.cn,.net.cn,.org.cn,.gd.cn等.子域名是其父域名的子域名,比喻父域名是abc.com,子域名就是www.abc.com或者*.abc.com.
    一般来说,二级域名是域名的一条记录,比如alidiedie.com是一个域名,www.alidiedie.com是其中比较常用的记录,一般默认是用这个,但是类似*.alidiedie.com的域名全部称作是alidiedie.com的二级

     

    4.HTTP部分的内容,类似于下面这样:

    GET / HTTP/1.1
    Host: www.google.com
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: zh-CN,zh;q=0.8
    Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
    Cookie: … …

    我们假定这个部分的长度为4960字节,它会被嵌在TCP数据包之中。

     

    5 TCP协议

    TCP数据包需要设置端口接收方(Google)的HTTP端口默认是80发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。

    TCP数据包标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节

     

    6 IP协议

    然后,TCP数据包再嵌入IP数据包IP数据包需要设置双方的IP地址,这是已知的,发送方192.168.1.100(本机接收方172.194.72.105(Google

    IP数据包标头长度20字节,加上嵌入的TCP数据包,总长度变为5000字节

     

    7 以太网协议

    最后,IP数据包嵌入以太网数据包以太网数据包需要设置双方的MAC地址发送方本机的网卡MAC地址接收方网关192.168.1.1的MAC地址(通过ARP协议得到)

    以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560

     

    8 服务器端响应

    经过多个网关的转发Google的服务器172.194.72.105收到了这四个以太网数据包

    根据IP标头的序号Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”接着做出”HTTP响应”,再用TCP协议发回来。

    本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

     

     

     

    展开全文
  • 网络通信协议

    千次阅读 2017-11-30 15:33:40
    网络通信协议 今天学习了网络通信协议,总结出来的知识点,不足之处请大家多多指教! 网络通信协议:负责在网络上建立通信通道和控制通过通道的信息流的规则 为了进行网络通信,通信双方必须遵守通信...

                                                       网络通信协议

    今天学习了网络通信协议,总结出来的知识点,不足之处请大家多多指教!


    网络通信协议:负责在网络上建立通信通道和控制通过通道的信息流的规则


    为了进行网络通信,通信双方必须遵守通信协议


    网络通信协议的组成:

    语法(syntax):包括数据格式、数据编码以及信号等。

    语义(semantics):包括用于协调和差错处理的控制信息。

    定时(Timing):包括传输速率和数据排序等。





    常见的网络协议

    IP(Internetworking Protocol)网间网协议
    IP协议是是网络层的主要协议,支持网间互联的数据报通信,它是无连接、不可靠的协议。IP 网络上的主机只能
    直接向本地网上的其他主机(也就是具有相同IP 网址的主机)发送数据包


    TCP(Transport Control Protocol)传输控制协议
    TCP协议是面向连接(需要在客户端和服务器之间建立连接)、保证高可靠性(数据无丢失、数据无失序、数据

    无错误、数据无重复到达,安全性可以得到保障)传输层协议


    UDP(User Datagram Protocol)用户数据报协议
    UDP协议跟TCP协议一样也是传输层协议,但它是无连接(无需在客户端和服务器之间建立连接),不保证可靠

    (安全性得不到保障)的传输层协议


    UDP和TCP协议区别:

    TCP协议:可靠,传输数据包的大小没有限制,但是连接建立需要时间,差错控制的开销大;


    UDP协议:不可靠,差错控制开销小,传输数据包大小有限制(64K以下),不需要建立连接。


    应用层:

    应用层也称为应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。


    基本简介:

    开放式系统互连 (Open Systems Interconnection reference,OSI) 参考模型是一种抽象的分层模型。
    OSI七层网络参考模型:
    Layer 7:应用层(Application Layer)
    Layer 6:表示层(Presentation Layer)
    Layer 5:会话层(Session Layer)
    Layer 4:传输层(Transport Layer)
    Layer 3:网络层(Network Layer)
    Layer 2:数据链路层(Data Link Layer)
    Layer 1:物理层(Physical Layer)
    TCP/IP协议模型:
    应用层(Application Layer);
    传输层(Transport Layer);
    Internet层/网络层;
    网络接入层(Network Access Layer)
    应用层(Application Layer):该层为用于通信的应用程序和用于消息传输的底层网络提供接口。[1] 
    网络应用是计算机网络存在的原因,而应用层正是应用层协议得以存在和网络应用得以实现的地方。
    应用层Application layer)是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求。
    应用层
    应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务.其服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE.
    CASE提供最基本的服务,它成为应用层中任何用户和任何服务元素的用户,主要为应用进程通信,分布系统实现提供基本的控制机制;特定服务SASE则要满足一些特定服务,如文卷传送,访问管理,作业传送,银行事务,订单输入等。这些将涉及到虚拟终端,作业传送与操作,文卷传送及访问管理,远程数据库访问,图形核心系统,开放系统互连管理等等。
    应用层的软件
    1、 网络感知应用程序:
    应用程序是指人们用于网络通信的软件程序。有些终端用户应用程序是网络感知程序,即这些程序实现应用层协议,并可直接与协议栈的较低层通信。电子邮件客户程序和 Web 浏览器就属于这种类型的应用程序。
    2、 应用层服务[1]
    如何实现一个网络应用
    1. 选择一个合适的网络应用体系结构;
    2. 根据所选的网络应用体系结构,确定客户进程和服务器进程;
    3. 确定客户进程和服务器进程的端口号;
    4. 确定客户进程和服务器进程的IP地址;
    5. 选择一个合适的应用层协议;
    6. 考虑网络应用所需的服务。

    功能特点:

    属于应用的概念和协议发展得很快,使用面又很广泛,这给应用功能的标准化带来了复杂性和困难性。比起其它层来说,应用层需要的标准最多,但也是最不成熟的一层。但随着应用层的发展,各种特定应用服务的增多,应用服务的标准化开展了许多研究工作,ISO已制定了一些国际标准(IS)和国际标准草案(DIS)。因此,通过介绍一些具有通用性的协议标准,来描述应用层的主要功能及其特点。
    主要是提供网络任意端上应用程序之间的接口

    运输访问和管理

    文件运输与远程文件访问是任何计算机网络最常用的两种应用。文件运输与远程访问所使用的技术是类似的,都可以假定文件位于文件服务器机器上,而用户是在顾客机器上并想读、写而整个或部分地运输这些文件,支持大多数现代文件服务器的关键技术是虚拟文件存储器,这是一个抽象的文件服务器。虚拟文件存储给顾客提供一个标准化的接口和一套可执行的标准化操作。隐去了实际文件服务器的不同内部接口,使顾客只看到虚拟文件存储器的标准接口,访问和运输远地文件的应用程序,有可能不必知道各种各样不兼容的文件服务器的所有细节。

    电子邮件

    计算机网络电子邮件的实现开始了人们通信方式的一场革命。电子邮件的吸引力,在于象电话一样,速度快,不要求双方都同时在场,而且还留下可供处理或多处投递的书写文电拷贝
    虽然电子邮件被认为只是文件运输的一个特例,但它有一些不为所有文件运输所共有的特殊性质。因为,电子邮件系统首先需考虑一个完善的人机界面,例如写作,编辑和读取电子邮件接口,其次要提供一个运输邮件所需的邮政管理功能,例如管理邮件表和递交通知等。此外,电子邮件与通用文件运输的另一个差别是,邮件文电是最高度结构化的文本。在许多系统中,每个文电除了它的内容外,还有大量的附加信息域,这些信息域包括发送方名和地址、接收方名和地址、投寄的日期和时刻、接收复写副本的人员表、失效日期、重要性等级、安全许可性以及其它许多附加信息。
    ISO标志ISO标志
    1984年CCITT制定了叫做MHS(文电处理系统)的X.400建议的一系列协议。ISO试图把它们收进OSI的应用层,并叫做MOTIS(面向文电的正交换系统)。由于X.400结构的缺少,这种吸收不是很简单。1988年又修改了X.400,力争与MOTIS会聚。本章我们将介绍MHS。

    虚拟终端

    由于种种原因,可以说终端标准化的工作已完全失败了。解决这一问题的OSI方法是,定义一种虚拟终端,它实际上只是代有实际终端的抽象状态的一种抽象数据结构。这种抽象数据结构可由键盘和计算机两者操作,并把数据结构的当前状态反映在显示器上。计算机能够查询此抽象数据结构,并能改变此抽象数据结构以使得屏幕上出现输出。

    其它功能

    其它应用已经或正在标准化。在此,要介绍的是目录服务、远程作业录入、图形和信息通信。
    (1)目录服务:它类似于电子电话本,提供了在网络上找人或查到可用服务地址的方法。
    (2)远程作业录入:允许在一台计算机上工作的用户把作业提交到另一台计算机上去执行。
    (3)图形:具有发送如工程图在远地显示和标绘的功能。
    (4)信息通信:用于家庭或办公室的公用信息服务。例如智能用户电报、电视图文等。
    联系控制服务元素]ACSE和up][2]sup]提交、并发与恢复CCR b]
    随着应用层的发展,各种特定应用服务增多,当初ISO7498中定义的应用层服务已大部
    分划归到公共应用服务元素(CASE)中去了,而且许多应用有一定数据的共同部分,几乎
    所有这些应用都需要管理连接。为了避免每一个新的应用都要重新从头开始,ISO决定把这
    些公共部分实行标准化。下面描述其中最重要的两个。
    (1)联系控制服务元素ACSE
    联系控制服务元素提供应用连接的建立和正常或异常释放的功能。
    所谓联系是指两个应用实体之间的连接;联系控制服务元素是应用层的基本核心子集
    。提出以下几个ACSE原语:
    1)A一ASSOCIATE建立一个联系
    2)A一RELEASE 释放一个联系
    3)A一ABORT 用户发起的夭折
    4)A一P一ABORT 提供者发起的夭折
    每一条ACSE原语与相应的表示层服务原语有一一映照关系,也即应用联系与表示连接
    是同时建立、同时释放的。
    (2)托付、并发和恢复(CCR)
    CCR的主要目的就是协调若干个(相互关联的)应用联系,为基本多应用联系的信息处
    理任务提供一个安全和高效的环境。几乎所有的需要可靠性操作的应用都使用CCR。
    在CCR模型中,数据分为两大类:安全数据和常规数据,所谓安全数据是那些能经受应
    用失败,并且在应用联系恢复到正常后可以重新引用的数据。通常是把安全数据存储在外
    部存储介质中。为了保证安全数据的完整性和可靠性,对它的修改要用一些特定的规则,
    例如特定的封锁机制。所谓常规数据是那些在应用联系工作期间并没有被保存在可靠存储
    区域的数据。例如在缓冲区或工作栈中。当应用联系受到破坏后,这些数据将不再可用。

    协议举例:

    DNS

    DNS最早于1983由保罗.莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。
    早期的域名必须以英文句号“.”结尾,,这样DNS才能够进行域名解析。如今DNS服务器已经可以自动补上结尾的句号。
    当前,对于域名长度的限制是63个字符,包括www..com或者其他的扩展名。域名同时也仅限于ASCII字符的一个子集,这使得很多其他语言无法正确表示他们的名字和单词。基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集,这已经通过了验证并被一些注册机构作为一种变通的方法所采纳。

    HTTP

    HTTP的发展是万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了HTTP协议中一个现今被广泛使用的版本——HTTP 1.1。
    HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)调用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnel)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
    电子邮件电子邮件
    通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
    HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。具体细节请参考‘TCP和UDP的不同’。
    通过HTTP或者HTTPS协议请求的资源由统一资源定位器(Uniform Resource Identifiers,或者,更准确一些,URI)来标识。

    FTP

    FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流,空闲很长时间后,客户端的防火墙,会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话,会被防火墙断开;传输会产生一些错误。
    FTP实现的目标:
    促进文件的共享(计算机程序或数据)鼓励间接或者隐式的使用远程计算机向用户屏蔽不同主机中各种文件存储系统(File system)的细节可靠和高效的传输数据缺点
    密码和文件内容都使用明文传输,可能产生不希望发生的窃听。因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题,通过使用被动模式的FTP,得到了很大解决。服务器可能会被告知连接一个第三方计算机的保留端口。此方式在需要传输文件数量很多的小文件时,效能不好FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。
    运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。
    应用层协议为应用程序之间的通信提供规则,为确保通信畅通,源主机和目的主机上所实现的应用层协议必须一致。
    应用层协议的功能:
    l 为通信双方定义过程;
    l 定义消息类型;
    l 定义消息的语法;
    l 定义任何信息性字段的含义;
    l 定义发送消息的方式和预期的响应;
    定义与下一层之间的交互。










    展开全文
  • 网络通信基础知识 网络通信的发展历程 (1)单机阶段 (2)局域网阶段 (3)广域网internet阶段(很多个局域网之间通信) (4)移动互联网阶段 (5)物联网阶段 三大网络 (1)电信网(2)电视网络(3)...
  • 网络通信过程

    千次阅读 2019-04-18 17:40:48
    网络通信过程 1、2台电脑 如果两台电脑之间通过⽹线连接是可以直接通信的,但是需要提前 设置好ip地址以及⽹络掩码 2、使用集线器组成一个网络 广播的形式发送 3、使用交换机组成一个网络 当需要⼴播的时候...
  • 网络通信模型

    千次阅读 2019-06-02 23:31:00
    网络通信模型 一,起源 由于计算机网络的飞速发展,各大产商根据自己的协议生产不同的硬件和原件,为了实现不同的网络之间的互相通信,iso和ieee相继提出了osi参考模型,和tcp、ip模型 二,osi...
  • java网络通信

    千次阅读 2018-08-03 16:58:12
    java已经将网络程序所需要的东西封装成不同的类,只要创建这些类的对象,使用相应的方法,就可以实现网络通信。 服务器-----------网络-----------客户机。服务器是指提供信息的计算机或程序,客户机是指请求信息的...
  • 当我们只想测试手机APP网络通信的时候,希望不受本机网络报文的影响,可以采用以下方法:
  • 网络通信技术基础

    千次阅读 2018-07-21 12:39:38
    在我们日常使用的各种各样的软件,都涉及到一项很关键的技术——网络通信技术。今天我们就从软件开发者的角度来探究一下J网络通信技术。 一、网络通信技术 当我们用在点击下QQ对话框的“发送”按键时,相应的好友...
  • 网络通信,UDP.TCP协议

    千次阅读 多人点赞 2020-11-17 20:15:07
    网络通信,UDP.TCP协议 网络通信 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息...
  • 网络通信基础知识总结

    万次阅读 多人点赞 2019-03-22 17:52:33
    在具有层次化结构的网络通信过程中,上层协议传递给下层协议的数据单元(报文)都可以称之为下一层协议的载荷数据。 报文 报文是网络交换与传输的数据单元,它具有一定的内在格式,并通常都...
  • 什么是网络通信协议?

    千次阅读 2020-08-11 15:53:51
    网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的...
  • 基站网络通信

    千次阅读 多人点赞 2020-06-04 09:16:01
    基站工作原理:基站的主要功能就是提供无线覆盖,即实现有线通信网络与无线终端之间的无线信号传输。 什么是通信? 简单来说,通信就是传递信息。我把我的信息发给你,你把你的信息发给我,这就是通信。 拓扑 按照...
  • libevent、curl进行网络通信的时候函数 int result = client.Get(url, res)返回值为18,网络通信不成功。 经查询:CURLE_PARTIAL_FILE Transferred a partial file 18 文件传输不完整。抓包看请求的回复包内容少于...
  • 文档:十二.linux网络编程之网络通信相关概述... 链接:http://note.youdao.com/noteshare?id=183c1dffb25c93efeb79b68611fa10f4&sub=9A186925C22A49CF933350A85217C078 一.网络通信概述 1、从进程间通信说起...
  • Python中的网络通信

    万次阅读 2018-01-22 13:47:25
     在我们平时生活工作中,常常会接触到网络通信的内容,不管你是普通的用户,还是通信行业内的开发人员,都无法避免与网络通信打交道。我在初步学习python的过程中,对python的网络通信问题做了总结,所以写下这篇...
  • 计算机网络通信原理部分

    千次阅读 2019-05-10 09:45:51
    文章目录计算机网络通信原理部分一、网络的由来?二、网络协议介绍三、五层模型讲解3.1、物理层3.2、数据链路层3.2.1 以太网协议3.2.2 mac地址:3.2.3广播3.3、网络层3.3.1 IP协议:3.3.2 子网掩码3.3.3 ip数据包...
  • 串口通信+TCP网络通信简单综合实例

    千次阅读 2017-07-21 18:43:35
    串口通信+TCP网络通信简单综合实例 串口通信加上TCP网络通信之后就可以简单实现本地设备的联网功能了,哈哈,话不多说,直接上代码。 总体上还是C/S模式,但是这个客户端加上了对串口的操作而已,思路很简单,只...
  • 网络通信基础知识简介

    千次阅读 2018-05-15 13:19:27
    一、网络通信的传输媒介(1)无线通信:WIFI、蓝牙、zigbee、4G/5G/GPRS等;(2)有线通信:双绞线、同轴电缆、光纤等。 二、路由器(1)路由器是局域网和外部网络的通信的出入口;(2)路由器将整个internet划分成...
  • 网络通信原理简述

    千次阅读 2017-04-01 12:20:39
    网络通信原理简述 背景: 主机A连接在路由器1上。主机A要与主机B通信(主机A一定是知道主机B的ip地址的,在网络层IP地址是主机的唯一标示)。 注意:即使是在同一个局域网主机A,B也是通过路由器连接的,并没有直接...
  • Docker容器间的网络通信

    千次阅读 2017-10-15 17:35:09
    Docker Network简单记录下容器间的网络通信。Docker Network 网络驱动 BRIDGE 容器与外部的网络通信前提 宿主机与容器的端口映射 容器间的网络通信 使用自己创建的NETWORK 不同NETWORK间的容器通信 容器DNS 默认...
  • docker容器网络通信原理分析

    万次阅读 2016-04-25 20:35:22
    自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信。而本文将分别针对这两方面,对容器...
  • 网络通信教学

    千次阅读 2020-06-01 09:15:49
    同一网段内计算机通信流程 参考地址:https://www.processon.com/view/5d784083e4b01080c73b9ca8 如上图为一个简单的同一网段内主机的示例。 如果计算机 A 向计算机 B 发送消息,那么 应用层会获取计算机 B 的 ip ...
  • Unity 网络通信

    千次阅读 2013-03-04 10:52:42
    如果要使用Unity作为MMO游戏的客户端,一般来说都是在C#中通过socket建立自定义的网络通信来实现。Unity本身的网络功能是为多人游戏设计的,这种游戏模式一般来说就是一个玩家建立游戏(这个玩家既是server,又是...
  • Docker多主机网络通信详解

    千次阅读 2016-02-12 15:54:56
    Docker多主机网络通信详解作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszsDocker支持多主机网络通信功能,可以通过命令行建立多主机通信网络。本文使用Docker ...
  • C# Socket网络通信基础教程

    万次阅读 2018-08-24 23:13:37
    套接字是支持TCP/IP协议网络通信的基本操作单元可以将套接字看作不同主机间的进程双向通信的端点, 它构成了单个主机内及整个网络间的编程界面。 套接字存在于通信域中, 通信域是为了处理 一般的线程通过套接字通信...
  • 从基础的网络知识开始由浅入深地讲解如何使用C++实现一套支持百万级别并发的网络通信引擎。包含:高频并发、多线程、多进程、线程池、内存池、软件硬件瓶颈、如何测试优化网络处理能力等技术知识。可以应用在Windows...
  • 谈谈对网络通信的理解

    千次阅读 2018-04-09 11:16:29
    网络通信三要素: A:IP地址 计算机在网络中的唯一标识。 现在使用的是:"点分十进制" B:端口 应用程序的的标记。 C:协议 通信的规则。网络通信其实就是Socket间的通信,Socket(套接字)就是为网络服务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 159,198
精华内容 63,679
关键字:

网络通信