首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网络之socket套接字-基础知识

前言 本文介绍了网络的一些基础概念,主要包括:IP和端口号、TCP/UDP协议、网络字节流以及套接字接口。...网络通信的本质就是进程间通信,我们之前讲过进程间通信的本质是进程们看到同一份资源,此时的同一份资源就是网络。 通信的本质就IO,因为我们上网的行为就两种:1.发送数据;2.接收数据。...未来进行网络编程时,如果是网络通信,填充的网络信息是struct sockaddr_in这个结构体。...接口的设计为啥是structaddr结构?为什么不用void类型(C语言未来能够接收任意来下,可以将参数设置为void*;并且void不需要强转)?...套接字是一种网络通信机制,IP + 端口号是套接字的构成形式。 网络字节序规定为大端(我们规定网络中的数据是大端形式)。 sockaddr使用统一的接口解决所有网络或者其他场景下的通信问题。

32530

【Java 网络编程】网络环境简介 ( 网络 | 网络编程 | OSI 七层网络模型 | TCPIP 网络模型 )

文章目录 I 网络简介 II 网络编程 III OSI 七层网络模型 IV OSI 七层网络模型 - 网络编程 V OSI 七层网络模型 - TCP/IP 模型 对应关系 I 网络简介 ----...互联网 : 局域网 , 广域网 , 城域网的集合就是互联网 ; II 网络编程 ---- 网络编程 : 控制客户端或服务器端信息的发送和接收 ; 通过编程语言 API 调用网络设备硬件资源 , 利用网络传输渠道...网络层 ( Network ) : 控制网络选择 , 即逻辑地址寻址 , 和路由选择 ; 6....TCP/IP 网络模型 : 应用层 , 传输层 , IP 层 , 网络接口层 ; 2....TCP/IP IP 层 对应 OSI 网络层 ; 5. TCP/IP 数据链路层 , 物理层 对应 OSI 网络接口层 ; 物理层有以太网 , 令牌环网 , ATM 网络等 ;

43030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux网络】Linux网络基础入门:初识网络,理解网络协议

    无论你是对网络技术充满好奇的初学者,还是希望深化Linux网络知识的专业人士,了解并掌握Linux网络协议,都是通往更深层次技术探索的必经之路 本文,正是为了引领你踏入Linux网络协议的神秘殿堂而精心准备...在这里,我们将从网络协议的基本概念出发,逐步揭开Linux网络协议栈的面纱,带你领略TCP/IP协议族的博大精深,以及Linux如何优雅地实现这些协议,确保信息的准确、高效传输 网络协议的学习之路或许充满挑战...计算机网络背景 发展历程 计算机网络的发展可以追溯到20世纪60年代。...网络协议初识 网络协议,简称为协议,是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。...通过生动的实例和直观的图表,我们成功地将复杂的网络协议知识转化为易于理解的精华,让你在轻松愉快的氛围中掌握了Linux网络协议的核心要点 然而,这仅仅是学习Linux网络协议的起点。

    14810

    网络】socket套接字基础知识

    (全网唯一进程) 网络通信的本质就是进程间通信。...常见的有三种: 1.网络套接字 2.原始套接字 3.unix域间套接字 我们主要了解第一个网络套接字 网络套接字主要运用于跨主机之间的通信,也能支持本地通信,而域间套接字只能在本地通信。...未来进行网络编程时,如果是网络通信,填充的网络信息是struct sockaddr_in这个结构体。...接口的设计为什么是structaddr*结构,C语言为了能够接收任意类型是void*,为什么不使用void*,而且void*不用强转 因为设计这一批接口时C语言标准还没有void* 这是OS的接口,...(全网唯一) TCP/UDP协议都是传输层的协议,其他特点不同:如UDP是不可靠的 套接字是一种网络通信的机制,IP+端口号port是套接字的形式,网络字节序列规定为大端,规定网络中的数据是大端的。

    27120

    网络网络基础入门

    如何区分广域网和局域网 在一般情况下,可以通过是否有路由器来初步区分一个网络是广域网还是局域网。理论上来说,如果一个网络中存在路由器,则该网络可以连接到其他局域网和互联网上,从而形成了广域网。...,通过网络连接起来 所以计算机中体系结构中有网络网络中有体系结构 我们在学习系统的时候没有谈论过协议,那么现在为什么要进行讨论,这是因为多台主机距离较远,为了减少通信成本,所以需要协议 所有的网略的问题都是由于传输距离变长了...如何去看待局域网中的网络资源:站在系统的角度看待网络资源就是临界资源。 令牌环网的解决方式就是谁持有令牌环谁发送数据。没有令牌的主机就不能发送消息。...不同网段的两台计算机通讯过程不同在路由器部分: 一个设备至少要横跨两个网络,才能实现数据报跨网络转发,路由器必须至少横跨两个网络,路由器必须有两个网络接口。...由此可得出IP层的作用就是屏蔽底层网络的差异。 不同的协议层对数据包有不同的称谓,在传输层叫做数据段,在网络层叫做数据报,在链路层叫做数据帧。

    50641

    Linux网络-网络小结

    Linux服务器作为一个常用的网络服务器,主要的作用就是向客户端提供网络服务,所以我们需要熟练掌握网络相关的命令,用于探测对端网络是否畅通,用于检查本地网络进程是否正常,以及可以通过命令去远端服务器进行下载文件...) 6.检查本地服务状态(ss) 7.网络小结(本章节) 经过前面6小节的介绍,我们已经可以完成配置ip地址,探测远端服务器的的连通性问题,可以基本判断网络是否有问题。...上面讲的只是Linux网络的基本命令,对于计算机网络一点都没有讲,这个后期会单独出一个大的章节来讲解。...前面6小节我们只讲了几个网络命令,涉及到网络的命令当然远远不止上面那几个,但是平时一般运维的情况下,使用频繁的网络命令就是上面几个,比如ip这个命令,就有非常多的参数。...这种方法通常用于快速检查目标主机的网络可达性,特别是在没有安装ping或telnet等网络工具时。

    3300

    网络】TCPIP 五层网络模型:网络

    对于家庭网络这种比较简单的网络结构来说,路由器都有“自动分配 IP”的功能(DHCP)。但在公司、学校、商场、宾馆… 这些更复杂的场景,网络需求更复杂,就需要进行手动设置了。...,15.237 就是主机号 网络中规定: 同一个局域网中的设备,网络号必须相同,主机号必须不同 在这个局域网中,某个设备号不相同的话,就无法上网;某个设备的网络号虽然相同,但主机号和别的设备重复,...也无法上网 两个相邻的局域网,网络号必须不同 路由器上有两种网络接口: LAN 口 WAN 口 此时这个路由器就连接了两个局域网。...这两个局域网的 IP 网络号是不能重复的。...自动获取的(路由表生成算法) 手工配置(网络管理员,手动设置) 真实的网络结构(尤其是广域网的网络结构是怎样的) 感兴趣可以去 B 站搜一下,中国电信/中国移动/中国联通网络架构

    22210

    Docker网络——单host网络

    一、Docker默认网络 在新安装docker的主机上执行 docker network ls 便能看到docker默认安装的所有网络,分别是none网络、host网络和bridge网络。...1.1 none 网络 none网络就是什么都没有的网络。挂在这个网络下的容器除了lo,没有其他任何网卡。容器run时,可以通过添加--network=none参数来指定该容器使用none网络。...1.2 host 网络 连接到host网络的容器共享Docker宿主机的网络栈,即容器的网络配置与host宿主机完全一样。可以通过添加--network=host参数来指定该容器使用host网络。...host网络的使用场景又是什么呢? 直接使用Docker host的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择host网络。...三、不同容器之间的连通性 同一个网络(默认网络或者自定义网络)下的容器之间是能ping通的,但是不同网络之间的容器由于网络独立性的要求是无法ping通的。

    2.6K50

    网络基础篇-网络编程

    在linux中,socket是一个文件,有对应的文件描述符,网络读写都是通过这个文件描述符的。这个文件描述符有一个对应的socket结构,包含两个队列,一个是发送队列,一个是接收队列。...网络并发模型设计 阻塞I/O+进程 这种方式最为简单,服务端接收每个连接,都fork一个独立的进程来处理这个链接的读写事件,各个链接互不影响。但是缺点比较明显,效率不高,扩展性差,资源占用率高。...通常在实现的时候,一个主Recator(main reactor)用一个线程来监听网络连接,并接收socket,当接收到一个socket, 把socket交给某个子Reactor(sub reactor...)去处理,有多个子Reactor, 每个子reactor对应一个线程,通过I/O多路复用处理自己所负责的网络连接的读写事件,以读取完整的请求包和写入完整的发送包。...这里只是处理网络读写,业务逻辑往往也是交给独立的线程去处理,通常是一个线程池,网络读写的sub reactor和业务逻辑直接通过队列来解耦。线程池里的线程读取队列,并做业务逻辑处理和编解码。

    69230

    Docker网络上篇-网络介绍

    是在同一个网络还是在不同的网络环境下?docker中怎么配置网络环境呢?本文咱们就一起学学docker网络。 本文是凯哥学docker系列高级篇之Docker网络上集。...【Docker学习教程系列汇总】笔记及遇到问题解决文章 docker网络是什么? 在不启动docker之前,我们来看看宿主机的网络情况。...Docker网络常用的命令: 使用命令查看: docker network ls bridge、host、none是默认创建的3大网络模式。...网络模式 docker网络有以下几种模式: 其中比较常用的是bridge和host模式。...我们会用到 docker network create 网络名称 我们创建指定的网络名称。然后设置ip.其他同一类的都可以使用这个网络名称(网络范围内)。通过网络服务来连接。

    1.2K20

    Java网络编程--网络协议

    OSI网络七层协议 为使不同计算机厂家的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。...OSI网络七层协议就是在这个基础上制定出来的,其从最底层开始依次是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 ?...TCP是网络中一个重要的传输层协议。...Socket编程 Socket编程是网络中应用最广泛的网络应用编程接口,实现了三种底层协议接口 数据报类型套接字SOCK_DGRAM (面向UDP接口) 流式套接字SOCK_STREAM(面向TCP接口...) 原始套接字SOCK_RAW(面向网络层协议接口IP,ICMP等) 主要Socket API及其调用过程: ?

    1.2K20

    docker网络之Bridge网络

    在聊这个问题之前,我们先看一个日常生活中的例子来辅助理解,Docker Bridge网络在局域网中,多台电脑要想互相通信,需要一个交换机通过动态IP协议给每个机器分配一个IP地址(IP在同一网段),并且每台电脑都有一个默认的网关...docker创建的容器默认是连接到一个接口为docker0的Bridge网络上的,我们通过以下容器去分析。...首先我们先查看一下宿主机上的网络接口,是有一个接口为docker0的Bridge(网桥)的网络。...IP是172.17.0.1/16(IP为172.17.0.1的16位掩码) # 列出宿主机的网络接口 vagrant@swarm2:~$ ip a ........... 10: docker0: <NO-CARRIER...查看当前docker提供的网络模式,可以看到有一个DRIVER为bridge(网桥)的 vagrant@swarm2:~$ docker network ls NETWORK ID NAME

    56220

    网络基础之网络协议

    注:计算机(硬件)->os->应用软件 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用 像这样,每个人都拥有一台自己的机器...(一台主机通过arp协议获取另外一台主机的mac地址) ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼 2.3.3 网络网络层由来:有了ethernet、mac地址、...:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址 IP协议: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示 范围...知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。...以太网是广播发送,同一个子网络的每台计算机都收到了这个包。

    87220

    网络网络基础入门

    前言 从本文开始,我们来学习计算机网络。本文主要介绍了局域网和广域网、协议、TCP/IP四层模型、网络传输的基本流程、IP地址和MAC地址等相关概念。...一、局域网和广域网 独立模式:计算机之间相互独立; 网络互联:多台计算机通过网络连接在一起,完成数据共享。...理论上,如果该网络中存在路由器,则该网络可以连接到其它局域网和互联网上,从而形成广域网。 如果网络中没有路由器,则只能通过同一局域网内的设备来进行通信,因此可以被视为局域网。...因此,计算机体系结构中有网络网络中有体系结构。 我们在学习系统时,没有谈过协议,为什么网络中要讨论协议? 这是因为多台计算机距离较远,为了减少它们之间的通信成本,我们需要协议。...不同网段的两台计算机通讯过程的不同在于路由器部分: 一个设备至少要横跨两个网络才能实现数据报跨网络转发,路由器必须至少横跨两个网络,路由器必须要有两个网络接口。

    34830

    网络

    数据传输完毕后,就释放了连接,A工发出了两个连接请求报文段,其中第一个丢失,第二个到达了B,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达B,此时B误认为A又发出一次新的连接请求...包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪...Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。...2)A在发送完最后一个ACK报文段后,再经过2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失,使下一个新的连接中不会出现这种旧的连接请求报文段。...答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。

    58200

    计算机网络网络层-网络互连与网络互连设备

    异构网络互连 异构网络:主要是指两个网络的通信技术和运行协议的不同。 例如:WIFI和网线等。 异构网络互连的基本策略: (1)....协议转换 采用一类支持异构网络之间协议转换的网络中间设备,来实现 异构网络之间数据分组的转换与转发。 例如:交换机或者是多协议路由器。 (2)....构建虚拟互联网络 在异构网络基础上构建一个同构的虚拟互联网络。 2. 路由器 路由器:最典型的网络层设备,具有多个输入端口和多个输出端口的专用计算机, 主要任务就是获取与维护路由信息以及转发分组。...基于网络交换,性能最高,路由器价格昂贵。 ? (3). 输出端口 输出端口:缓存排队,从队列中取出分组进行数据链路层数据帧的封装,发送。 调度策略: A. 按先到先服务(FCFS)调度; B.

    1.1K30

    keras提供的网络_kubernetes网络

    GoogleNet网络详解与keras实现 GoogleNet网络详解与keras实现 GoogleNet系列网络的概览 Pascal_VOC数据集 第一层目录 第二层目录 第三层目录 InceptionV1...GoogleNet系列网络的概览 InceptionV1,通过把不同尺寸的卷积核如1×1,3×3,5×5进行堆叠增加了网络对不同尺度的适应性。...并且通过在3×3的网络,5×5的网络后加入1×1使得网络的计算复杂度降低,而且提高网络的非线性的程度,基于更强的表征能力。...这样做不仅仅加快了网络的运算速度,而且由于增加网络的层数,使得网络的非线性增加,提高网络的表征能力。...create_model这个函数里面的网络搭建可以参考Tabel.1,可以边看表里面的具体参数边搭网络

    57020

    Android网络优化 | 网络优化概述

    网络优化概述 网络优化的维度是多维的; 仅仅重视流量是不够的,流量只是网络优化的一个维度; 网络流量的消耗量统计,要全面、精确; 【注意整体均值(一段时间内APP消耗的流量)掩盖单点问题(某个功能消耗的流量...)】 很多时候在做网络流量统计上, 我们只是获取一个具体消耗多少的值, 但是这个值只能显示用户用了多少流量, 对于我们发现以及解决问题其实没有丝毫的帮助; 【整体均值掩盖单点问题】 比如线上用户反馈一个...、完善的网络监控体系; 【粗粒度监控不能帮助我们发现、解决深层次问题】 比如 做网络请求成功率的监控,但是仅仅这个值, 我们只能知道线上用户大概的网络使用情况; 这种粗粒度监控不能帮助我们发现...、解决深层次问题; 比如, 线上用户使用了某一个功能,使用了一千次,出现了一次异常, 而且用户点击重试之后,就又正常了, 这样单从数量来看,网络请求的成功率还是比较高的; 但是仅仅通过网络请求成功率这一个值...:用户流量消耗均值、 异常率(异常即一定时间内流量消耗过多, 网络请求次数过多, 下载过的文件过大) 最理想情况: 对所有的网络请求,本地都有一个完整的监控; 每一个请求的Request、Response

    97220
    领券