socket编程之二:两种链接类型upd和upd

前面一篇文章说到了一些计算机网络的基础知识,引入了socket,从这节开始,就进入正题了。

一 概率

TCP:Transimission Control Protocol传输控制协议。

UPD:User Datagram Protocol用户数据包协议。

两者都属于上一篇文章说的OSI模型中的第四层——传输层的协议。

两者相比:

  1. TCP协议面向连接,UDP协议面向非连接;(链接)
  2. TCP协议传输速度慢,UDP协议传输速度快;(速度)
  3. TCP有丢包重传机制,UDP没有;(重传)
  4. TCP协议保证数据正确性,UDP协议可能丢包;(正确性)
  5. TCP适合传递大量数据,UPD适合传递少量数据。(数据量)

二 TCP链接过程

三 UDP链接

* 两张图片均来自网络

四 socket编程

socket是TCP/IP网络的API,程序员利用socket接口来对进行数据的交换。

socket编程之二:两种链接类型upd和upd,布布扣,bubuko.com

时间: 2024-12-15 01:55:33

socket编程之二:两种链接类型upd和upd的相关文章

python异步socket编程之二

三.异步client与异步server的通信 1. 服务端代码 pythone socket的server段,开放三个端口:10000,10001,10002. 例子中是每个server绑定一个端口,测试的时候需要分别开3个shell,分别运行. 这太麻烦了,就分别用三个Thread来运行这些services #!/usr/bin/env python # # -*- coding:utf-8 -*- # File: multithrd_socket_server.py # import opt

python socket 编程之二:socket与tcp三次握手

建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认:第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手. socket里哪一步经

[深入浅出WP8.1(Runtime)]Socket编程之UDP协议

13.3 Socket编程之UDP协议 UDP协议和TCP协议都是Socket编程的协议,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议.UDP适用于一次只传送少量数据.对可靠性要求不高的应用环境.既然 UDP 是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP协议可能会变得非常有用.因为UDP具有TCP所望尘莫及的速度优势.虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受

.Net并行编程之二:并行循环

本篇内容主要包括: 1.能够转化为并行循环的条件 2.并行For循环的用法:Parallel.For 3.并行ForEach的用法Parallel.ForEach 4.并行LINQ(PLINQ)的用法AsParallel() 5.并行中断与并行停止的用法与区别 6.外部控制循环取消的方法(Break,Stop) 7.处理循环体中抛出的异常 8.小循环体的分区并行方法:Parallel.ForEach 9.最大并行度的控制,Parallel.For,Parallel.ForEach 10.在循环体

Kubernetes中,两种常见类型的Volume深度实践

一.背景 存储资源在所有计算资源中扮演着十分重要的角色,大部分业务场景下都有可能使用到各类存储资源.在Kubernetes中,系统通过Volume对集群中的容器动态或静态提供存储资源.通常情况下,我们可以认为容器或者Pod的生命周期时短暂的,当容器被销毁时,容器内部的数据也同时被清除.为了持久化保存容器的数据,Kubernetes引入了Volume,类似于Docker的Volume(Docker also has a concept of volumes, though it is somewh

两种常量类型-readonly和const

C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景.工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量. const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值. 下面声明两个常量: public static readonly int A = 2; //A为运行时常量public const int B = 3; //B

Socket编程之Select模型

echoserver_select.c 1 #include <apue.h> 2 3 #define BACKLOG 10 4 #define PORT 8080 5 #define MAXCLIENT 20 6 #define LEN_BUF 255 7 8 fd_set grset; 9 int maxfd; 10 struct client 11 { 12 char ip[16]; 13 unsigned short port; 14 int connfd; 15 }; 16 17 s

java List递归排序,无序的列表按照父级关系进行排序(两种排序类型)

当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树结构进行排序 排序前:122,13,121,1,131,12,132...无序的[TestSort [id=122, name=三级b, parentid=12], TestSort [id=13, name=二级b, parentid=1], TestSort [id=121, name=三级a,

PHP Socket 编程之9个主要函数的使用之测试案例

php的socket编程算是比较难以理解的东西吧,不过,我们只要理解socket几个函数之间的关系,以及它们所扮演的角色,那么理解起来应该不是很难了,在笔者看来,socket编程,其实就是建立一个网络服务的客户端和服务端,这和mysql的客户端和服务端是一样的,你只要理解mysql的客户端和服务端是怎么一回事,你就应该能够理解下面我要讲的东西吧. 关于socket编程所涉及到的网络协议,什么TCP啊,UDP啊,什么socket三次握手等等,这些网络协议网上有很详细的解释,这里不讲,只截个sock