TCP连接流程是TCP协议的一部分,需要经过三次握手。而connected datagram虽然使用了socket的同样的函数connect,但是UDP协议并不包含连接流程,也就是UDP实际上并没有真正和远端通过一定的协议流程就直接建立起我们所谓的连接,或者简单地说,指定了一个默认的外出口。

TCP连接流程,三次握手,TCP协议为其定义了SYN同步包标识,远端必须被接收连接端主动发起的SYN包,并返回SYN+ACK给连接端,最后等待连接的ACK+1响应。

而UDP的socket调用connect后,只是单纯在底层绑定到远端的peer插口,并不需要远端进行listen。换句话说,UDP的socket可以连接到任意的地址上,而不必理会这个地址上是否可以到达或远端主机是否运行着这样一个socket。UDP的socket在(调用)连接后,所有发送将默认到连接的远端,和默认只接收来自指定的远端地址的数据报文。

在connected datagram中,被连接的一端不必在连接调用端之前绑定好地址端口。源端调用了connect,目标端也进行了绑定,这个连接就建立起来了。目标端并不需要在源端connect之前进行地址端口的绑定。当两端都调用过connect后,两端的都成为对方的默认通讯目标。UDP的socket在进行端口绑定后可以对任意的地址进行发送数据和对接收来自任意的地址的数据,connect后只是将通讯的选择缩小并固定为一个目标,并没有在可确保上做任何的工作。

connected datagram 与TCP连接的区别的更多相关文章

  1. C# Socket和TCP连接的区别

    网络通信七层参考模型介绍: 物理层: HUB,网线 链路层: MAC,ARP,交换机 网络层:IP,ICMP,IGMP,路由器 传输层: TCP,UDP 会话层: HTTP,SMTP,FTP,POP3 ...

  2. 计算机网络知识(TCP连接,TCP/UDP区别,HTTP与HTTPS,Socket原理等等)

    1.网络七层协议包含,物理层.数据链路层.网络层(ip协议).传输层(TCP传输控制协议.UDP用户数据报协议).会话层.表示层.应用层(http协议).是一个提供的概念架构协议. 2.TCP/IP协 ...

  3. TCP/IP系列——长连接与短连接的区别

    1 什么是长连接和短连接       三次握手和四次挥手   TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程. 三次握手为连接的建立过程,握手失败 ...

  4. TCP 长连接与短连接的区别

    TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的 ...

  5. TCP长连接与短连接的区别

    http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,se ...

  6. [转载] TCP长连接与短连接的区别

    转载自http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前 ...

  7. TCP长连接和短连接的区别

    当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需 ...

  8. UNIX网络编程——TCP长连接与短连接的区别

    一.TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,server回应client,然后 ...

  9. TCP长连接和短连接的区别【转】

    转自:https://www.cnblogs.com/onlysun/p/4520553.html 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, ...

随机推荐

  1. nginx::升级到最新nginx

    ubuntu16. 升级nginx到最新版本 wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.k ...

  2. WebSocket学习简书

    1.什么是Websocket? WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 2.单工,半双工和全双工通信? 在单工通信中,通信的信道是单向的,发送端 ...

  3. 1.Linux-CentOS7.6安装教程

    了解Linux Linux 就是一个操作系统,主要为企业提供支持与服务. 学习Linux需要具备什么基础?能看懂中文,能看懂简单的 English ​ 1.什么是Linux? Linux:和我们常见的 ...

  4. 在树莓派上安装Theano

    “查遍全网都没人成功在树莓派安装Theano,这是什么样的感觉?” ——写在开头 在这里必须先说一下,由于安装过程中的坑太多了,遇到的问题层出不穷,所以我这里只能记录我安装过程中的印象深刻的问题,如果 ...

  5. Nginx 热部署和日志切割,你学会了吗?

    上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场 ...

  6. Java基础(三十)泛型程序(Generic Programming)

    一.泛型程序的定义和使用 1.为什么要使用泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.同时,使得程序具有更好的可读性和安全性. ArrayList<String&g ...

  7. DirectX9:基础篇 第一章 初始化Direct3D

    一.简介 二.Direct3D类 1.创建D3D类 IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion); //Direct3D类的创建 IDirec ...

  8. java常用类String

    String: String类: 代表字符串 是一个final类,代表不可变的字符序列 字符串是常量,用双引号引起来表示.值在创建后不可更改 String对象的字符内容是存储在一个字符数组Value[ ...

  9. Redis的使用--基本数据类型的操作命令和应用场景

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! Red ...

  10. C语言博客作业006

    问题 答案 这个作业属于那个课程 C语言程序设计1 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/ 我在这个课程的目的是 学习并掌握 ...