udp

TCP/UDP协议

本秂侑毒 提交于 2020-02-14 00:17:20
文章目录 1.OSI网络七层模型 1.1各层的主要功能 低三层 承上启下作用层 高三层 2.传输控制协议TCP 2.1 TCP握手机制 2.1.1三次握手过程 Ⅰ.为什么需要三次握手,两次不行吗? Ⅱ.什么是半连接队列? Ⅲ.ISN(Initial Sequence Number)是固定的吗? Ⅳ:三次握手过程中可以携带数据吗? Ⅴ. SYN攻击是什么? 2.1.2 四次挥手过程 Ⅰ. 挥手为什么需要四次? Ⅱ.四次挥手释放连接时,等待2MSL的意义? Ⅲ.为什么TIME_WAIT状态需要经过2MSL才能返回到CLOSE状态? 3.用户数据报协议 UDP 3.1开发应用人员在UDP上构建应用时关注的点 3.2 UDP和TCP比较 3.3什么情况下会用到UDP? 4.Socket编程 1.OSI网络七层模型 为使不同计算机厂商的计算机能够互相通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。 分层的目的:为了让每一层的开发人员、系统设计不需要再关心整个的网络层次。比如说做网线或者光纤的厂商,只需要关心物理层就行。 1.1各层的主要功能 低三层 物理层:使原始的数据比特流能在物理介质上传输。 数据链路层:通过校验、确认、和反馈重发等手段,形成稳定的数据链路(01010101)。 网络层:进行路由选择和流量控制。(IP协议) 承上启下作用层 传输层

网络基础(二)及HTTP协议

China☆狼群 提交于 2020-02-12 19:45:45
网络基础(二)及HTTP协议 一、HTTP协议 1 . 什么是url? 平时我们俗称的 “网址” 其实就是说的 URL 2.http协议的格式 http请求: 首行: [方法] + [url] + [版本] Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束 空行 Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度; http响应: 首行: [版本号] + [状态码] + [状态码解释] Header: 请求的属性,冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束 空行 Body: 空行后面的内容都是Body.Body允许为空字符串. 如果Body存在, 则在Header中会有一个 Content-Length属性来标识Body的长度;如果服务器返回了一个html页面, 那么html页面内容就是在 body中. http常见的Header: Content-Type: 数据类型(text/html等) Content-Length: Body的长度 Host:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上; User-Agent: 声明用户的操作系统和浏览器版本信息;

WinSock UDP通讯实例

倾然丶 夕夏残阳落幕 提交于 2020-02-12 07:18:00
下载 #include < WinSock2.h > #include < stdio.h > #define PORT 8888 int main() // server { WSADATA wsaData; int Ret = WSAStartup(MAKEWORD( 2 , 2 ), & wsaData); printf( " Server !\n " ); if (Ret != 0 ) { printf( " 无法初始化winsock.\n " ); WSACleanup(); } else { // printf("初始化winsock成功\n"); } if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return 1 ; } SOCKET socket = ::socket(AF_INET,SOCK_DGRAM,IPPROTO_IP); sockaddr_in addr; addr.sin_addr.S_un.S_addr = INADDR_ANY; addr.sin_family = AF_INET; addr.sin_port = ntohs(PORT); if (socket == INVALID_SOCKET) { printf(

UDP与TCP的区别

和自甴很熟 提交于 2020-02-10 05:40:04
TCP和UDP的比较 TCP UDP 无连接 面向连接 尽最大努力交付 可靠交付服务 面向报文 面向字节流 没有拥塞控制 有拥塞控制 支持一对一、一对多、多对多 支持一对一 开销小 开销大 来源: https://www.cnblogs.com/godfriend/p/11041454.html

Socket

泪湿孤枕 提交于 2020-02-10 05:37:50
学socket编程的意义   客户端/服务器架构(c/s架构) 硬件c/s架构(打印机) 软件c/s架构         互联网中处处是C/S架构     如某网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种)     腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频   C/S架构与socket的关系:      socket就是为了更加便捷的完成C/S架构的开发 OSI七层    一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的)    如果你要跟别人一起玩,那你就需要上网了,什么是互联网?   互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语。    人们按照分工不同把互联网协议从逻辑上划分了层级:     互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层:          每层常用的物理设备:         为何学习socket一定要先学习互联网协议:         1.首先:本节课程的目标就是教会你如何基于socket编程,来开发一款自己的C/S架构软件   2.其次:C/S架构的软件(软件属于应用层)是基于网络进行通信的   3.然后:网络的核心即一堆协议,协议即标准

TCP和UDP的区别

若如初见. 提交于 2020-02-09 07:27:16
UDP:用户数据报协议 1.UDP面向无连接,即发送数据之前不需要建立连接。 2.udp使用尽最大努力交付,即不保证可靠交付。 3.udp面向报文,没有拥塞控制,很适合多媒体通信的要求。 4.udp支持一对一,一对多,多对多,多对一的通信 5.udp的首部开销小,仅占8个字节。 TCP:传输控制协议 1.TCP面向有连接的。 2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一)。 3.TCP保证可靠交付。 4.TCP提供全双工通信。 5.TCP面向字节流。 6.TCP的首部最低20个字节。 来源: https://www.cnblogs.com/linliquan/p/11358404.html

基于UDP协议的socket套接字编程

坚强是说给别人听的谎言 提交于 2020-02-09 07:26:12
目录 一、UDP套接字简单示例 1.1 服务端 二、客户端 三、UPD套接字无粘包问题 3.1 服务端 3.2 客户端 四、qq聊天 4.1 服务端 4.2 客户端1 4.3 客户端2 4.4 运行结果 一、UDP套接字简单示例 1.1 服务端 import socket server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 数据报协议-》UDP server.bind(('127.0.0.1', 8080)) while True: data, client_addr = server.recvfrom(1024) print('===>', data, client_addr) server.sendto(data.upper(), client_addr) server.close() 二、客户端 import socket client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 数据报协议-》UDP while True: msg = input('>>: ').strip() # msg='' client.sendto(msg.encode('utf-8'), ('127.0.0.1', 8080)) data, server_addr =

网络并发面试集锦(1-50)

老子叫甜甜 提交于 2020-02-08 18:50:03
目录 1、python的底层网络交互模块有哪些? 2、简述OSI七层协议 3、什么是C/S和B/S架构? 4、简述TCP协议? 5、什么是arp协议? 6、tcp和UDP的区别?为什么tcp协议更可靠? 7、什么是局域网和广域网? 8、什么是socket?简述基于tcp协议的套接字通信流程? 9、什么是粘包?socket中造成粘包的原因是什么?那些情况会发送粘包现象? 10、IO多路复用的作用? 11、什么是防火墙以及作用? 12、select、poll、epoll模型的区别? 13、简述进程、线程、协程的区别以及应用场景? 14、什么是GIL全局解释器锁? 15、Python中如何使用线程池和进程池? 16、threading.local的作用? 17、进程之间二u和进行通讯? 18、什么是并发和并行? 19、同步和异步,阻塞和非阻塞的区别? 20、路由器和交换机的区别? 21、什么是域名解析? 22、如何让修改本地的hosts文件? 23、生产者和消费者模型应用场景? 24、什么是cdn服务? 25、有A.txt和B.txt两个文件,使用多进程和进程池的方式分别读取这两个文件? 26、那些是常见的TCPFlags? 27、tracerroute--一般使用的是哪种网络层协议? 28、iptabkes只是考察,根据要求写出防火墙规则? 29、socket套接字编程? 30

tcp协议和udp协议的使用场景

时光怂恿深爱的人放手 提交于 2020-02-08 18:20:14
一:什么是TCP(Transmission Control Protocol,传输控制协议) tcp是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 二:什么是UDP(User Data Protocol,用户数据报协议) (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 (2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。 (3)