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

网络协议之:socket协议详解之Socket和Stream Socket

socket建立连接的基础是IP协议,IP协议被用来进行数据的封装和分组,然后才能够在网络上进行传输。这种依赖于IP协议socket,又叫做network socket。...其中IP地址和端口定义了连接的对象,协议定义的是连接方式。 基于不同的协议,可以衍生出不同的类型的sockets。...对于Stream Socket来说,它是有向性的,数据package需要从一个地址通过网络传递到另外一个地址,同时还需要接受到对方的处理返回结果,在这个过程中通常使用的就是TCP协议。...什么是IPv4-mapped IPv6 addresses? 简单点说就是将IPv4映射到了IPv6的地址中。...同样的,我们建立到Ipv6的连接: nc -6 -vz ::1 8888 这里的 ::1表示的是Ipv6的本地地址。

2K21

网络协议之:socket协议详解之Datagram Socket

简介 上一篇文章我们讲解了Socket的分类和最常用到的Stream Socket,Stream Socket一般是基于TCP协议的,所以我们经常在web服务中能够看到他们的身影。...当然TCP协议有个孪生兄弟叫做UDP,那么基于UDP来做传输协议socket协议就叫做Datagram Socket,今天我们一起来详细了解一下Datagram Socket。...Datagram Socket通常使用的就是UDP协议作为底层的数据传输协议。 对于UDP来说,因为UDP协议本身并不会保证数据的顺序和数据异常的处理,这些都需要在应用程序中自己实现。...默认情况下nc使用的是TCP协议,如果要使用udp则需要使用-u这个参数。...同样的,我们可以使用下面的命令来连接到UDP socket: nc -6 -u -vz ::1 8888 其中::1表示的是本机的ipv6地址.

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

    网络协议之:socket协议详解之Unix domain Socket

    简介 之前的文章我们讲到了Socket中的Stream Socket和Datagram Socket,这两种Socket通常分别是基于tcp和udp协议来进行数据的传输。...那么今天我们会来讲解一个特殊的socket,这个socket不需要使用传统的IP地址和端口,而是使用文件系统来进行程序之间的数据交互,并且这样的socket只能使用在unix系统上。...这样的socket就是今天我们要讲解的Unix domain Socket。 什么是Unix domain Socket 什么是Unix domain Socket呢?...对于程序本身来说,只需要读取和写入共享的socket文件即可,也就是说不同的程序之间通过socket文件来进行数据交互。...和基于IP和端口的Socket一样,Unix domain Socket也可以分为Stream Socket和Datagram Socket

    2.2K50

    IPv6协议结构

    网络协议分析 IPv6协议部分 [TOC] 网络协议分析之IPv6协议基础 # 掌握IPv6协议栈的常用命令 # 掌握lPv6单播地址的使用方法 IPv6的特征: IPv6地址: IPv6地址空间...常用的自动配置技术包括:有状态自动配置协议(DHCPv6)和无状态自动配置协议。...同时,只有由网络管理员明确授权的节点才能通过DHCP服务器来配置 IPv6协议结构 # 掌握IPv6的报头格式 # 掌握分片报头的格式及用途 # 理解IPv6数据包的拆分、重组过程 IPv6数据包结构...IPv6数据包结构示意图 #### 基本首部 基本首部各字段含义: 版本:4位,指明了协议的版本,对IPv6该字段总是6。 区分服务:8位,以前叫做通信流类别,6表示IPv6数据包的类或优先级。...最后一个扩展报头指出上层协议数据单元的类型,上层协议可以是TCP协议、UDP协议或者ICMPv6协议等。

    23710

    IPv6 socket编程下--实现篇

    本文将详细介绍IPv6 socket编程的具体实现,具体原理请点击:IPv6 socket编程上--原理篇 判断客户端可用的IP stack 原理大家都明白了,但是客户端做不同的处理的前提是需要知道客户端可用的...IP协议栈。...我们先定义客户端可用的IP协议栈的意思是,获取客户端当前能使用的IP协议栈。例如iOS在NAT64 WIFI连接上的情况下,Mobile的网卡虽然存在IPv4的协议栈,但是系统是不允许使用的。...你可能会问,如果socket用AF_INET6的时候,用sockaddr_in6结构体不就好了。不是说不可以,就是代码会变成IPv6专用的了,如果用到其他地方可能会出错。...当然,上面我们说到IPv4-mapped IPv6 address和NAT64 mapped address同样也是适用的,例如:http://[::ffff:14.17.32.21]:80走IPv4协议栈或

    9K61

    浅谈IPv4协议IPv6协议的区别!

    在讲IPv4协议IPv6协议的区别前,我们必须了解什么叫IPv4协议IPv6协议?...IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用以取代IPv4的下一代IP协议,其地址数量被称作能够为全世界的每一粒沙子编上一个地址...与IPv4相比,IPv6的128位地址长度可以提供3.402823669×1038个地址。所以说IPv6曾号称可以为地球上的每一粒沙子分配一个地址,可以说成取之不竭,用之不尽的。...逐渐将会取代之前被广泛应用的IPv4协议。但因为IPv6比较复杂。不具备兼容性,操作现阶段的IPv4迁移到IPv6是比较困难的。...物联网的兴起,以及后续的5G广泛应用,IPv6协议的应用就会充分发挥最大的优势,不但能解决网络地址资源数量的问题,并且也能解决多种接入设备接入互联网的障碍。

    1.2K20

    TCP与UCP协议,及socket编程

    TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。...发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个...UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的...3,UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方 TCP:1,面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接...3,TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

    59910

    python3--socket编程(tcp协议)

    socket概念 socket层 ? 理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。...在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议 简单来说 其实站在你的角度上看...基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族 套接字家族的名字:AF_INET (还有AF_INET6被用于ipv6...套接字(socket)初使用 基于TCP协议socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 windows如果不通,注意关闭防火墙 server端 import socket...socket(tcp协议)编程,多人聊天 对于一个tcp连接,客户端和server对话没有结束,那么其它客户端全部都不能与服务器发消息对话 示例 server端代码 import socket sk

    1.7K30

    socket和TCPIP协议族的关系

    以前也编写过网络通信的程序,就是实现一个客户端与一个服务器通信相互发送消息,在程序中会使用一样东西叫做socket套接子,当时知道socket是应用层到下层的接口,但一直很难直观地理解socket到底是什么东西...本文来探究一下socket和TCP/IP协议族的关系,加深理解。...春恋慕 TCP/IP协议族中的数据链路层、网络层、传输层协议是在操作系统内核中实现的,因此操作系统需要实现一组系统调用,使得应用程序能够访问这些协议提供的服务。...实现这组系统调用的API就是socket。...socket是一套通用网络编程接口,他不但可以访问内核中的TCP/IP协议栈,而且可以访问其他网络协议栈。

    27910

    【1】HTTP协议Socket接口区别

    内容提要:     1.网络七层模型     2.什么是HTTP协议     3.什么是Socket接口 1.网络七层模型 ? ?...3.什么是Socket接口 Socket接口是对TCP/UDP协议封装的接口。 要想明白 Socket,必须要理解 TCP 连接。...Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。...创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。...Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。

    1.8K10

    python3--socket编程(udp协议)

    基于UDP协议socket udp是无连接的,启动服务之后可以直接接受消息,不需要提前建立连接,UDP必须是server端先接受消息 简单版 server端代码 import socket # ...创建一个服务器的套接字基于udp,type=socket.SOCK_DGRAM表示使用udp协议 udp_sk = socket.socket(type=socket.SOCK_DGRAM) udp_sk.bind...ip_port = ('127.0.0.1', 9555)  # 服务器的ip与端口 # 创建一个服务器的套接字,基于udp协议 type=socket.SOCK_DGRAM udp_sk = socket.socket...server端代码 import socket # 创建一个服务器的套接字基于udp,type=socket.SOCK_DGRAM表示使用udp协议 udp_sk = socket.socket(type...# 创建一个服务器的套接字基于udp,type=socket.SOCK_DGRAM表示使用udp协议 udp_sk = socket.socket(type=socket.SOCK_DGRAM) udp_sk.bind

    1K20

    【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )

    提高了处理效率 ; ④ 即插即用 : IPv6 设备只要接入网络就直接分配 IP 地址 , 不需要 DHCP 协议 ; ⑤ 数据分片 : IPv6 只能在源主机处进行数据分片 , 不能在路由器分片 ,...) ① ICMPv6 协议 是 用于 IPv6 的 ICMP 协议 , 其有附加报文 分组过大报文 , 路由器无法转发这么大的分组 , 返回给主机 , 让主机重新给报文分组 ; ② IPv6 支持资源预分配...; ③ IPv6 取消协议字段 , 使用 下一个首部 字段 替代 ; ④ IPv6 取消了总长度字段 , 使用 有效载荷字段替代 ; ⑤ IPv6 取消了服务类型字段 ; 四、IPv6 地址表示 --...过渡策略 ---- IPv4 向 IPv6 过渡策略 : ① 双栈协议 : 同一台设备上 同时启用 IPv4 和 IPv6 协议栈 , 该设备既能使用 IPv4 通信 , 又能与 IPv6 网络进行通信...; 路由器 : 不同的接口 分别 配置 IPv4 地址 和 IPv6 地址 ; 计算机 : 计算机同时拥有 IPv4 地址 和 IPv6 地址 , 可同时处理两种协议 ; ② 隧道技术 : 隧道技术

    4.1K00

    计网 - IPv6 协议:Tunnel 技术是什么?

    拆分子网,会带来很多问题,比如说内外网数据交互,需要网络地址转换协议(NAT 协议),增加传输成本。再比如说,多级网络会增加数据的路由和传输链路,降低网络的速度。...为了解决这个问题,1998 年互联网工程工作小组推出了全新款的 IP 协议——IPv6 协议。但是目前 IPv6 的普及程度还不够高....IPv6 同样接收上方主机到主机(Host-to-Host)协议传递来的数据,比如一个 TCP 段(Segment),然后将 TCP 段再次切片做成一个个的 IPv6 封包(Datagram or Packet...作为网络层协议IPv6,最核心的能力是确保数据可以从发送主机到达接收主机。因此,和 IPv4 类似,IPv6同样需要定义地址的格式,以及路由算法如何工作。...IPv6 的本地单播地址组成如下图所示: ? 这种协议比较简单,本地单播地址必须以fe80开头,后面 64 位的 0,然后接上 54 位的设备编号。

    1.4K50

    网络协议:一文搞懂Socket套接字

    一、Socket 简介 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。...TCP 协议提供的是点对点的通信,每条 TCP 连接由两端的套接字唯一确定。可以理解为 TCP 连接两端的套接字来连起来就形成了管道,管道的两端或者说管道的端口就是 Socket 套接字。...---- 二、Socket 分类 TCP/IP 协议族提供三种常见的 Socket 类型:流式 Socket(SOCK_STREAM)流式套接字、数据报 Socket(SOCK_DGRAM)数据报套接字...流套接字之所以能够实现可靠 的数据服务,原因在于其使用了传输控制协议 TCP。...因此,其主要是在编写自定义底层协议的应用程序时使用,例如各种不同的 TCP/IP 实用程序 三、Java 中的 Socket Java 中对 Socket 的使用是基于两个类 java.net.ServerSocket

    2.3K21
    领券