-
2022-03-18 13:55:06更多相关内容
-
基于TCP的网络应用程序
2014-04-21 11:15:32也就是说,基于TCP和UDP的不同的网络应用程序,它们可以拥有相同的端口号。端口使用一个16位的数字来表示,它的范围是0~65536,1024以下的疝号保留给预定义的服务。 客户机/服务器模式 客户机/服务器...最近在看网络编程方面的知识,记一下笔记。
Socket简介
网络编程的实现可以有多种方式,Windows Socket 就是其中一种,比较 简单的实现方法。Socket 是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定操作与驱动程序建立关系。此后,应用程序送给Socket 交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP地址和端口号相关的数据后,由驱动程序交给Socket,应用程序便可从Socket中提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。
端口
为了标识通信实体中进行通信的进程(应用程序),TCP/IP 协议提出了协议端口(protocol port, 简称端口)的概念。
端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后,传输层伟给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。
端口用一个整数型标识符来表示,即端口号,端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全的两个软件模块,因此各自的端口号也相互独立。也就是说,基于TCP和UDP的不同的网络应用程序,它们可以拥有相同的端口号。端口使用一个16位的数字来表示,它的范围是0~65536,1024以下的疝号保留给预定义的服务。
客户机/服务器模式
客户机/服务器模式: 在TCP/IP 网络应用中,通信的两个进程间相互作用的主要模式 是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。
客户机/服务器模式在操作的过程中采取的是主动请求的方式。
首先服务器方要先启动,并根据请求提供相应服务。
1. 打开通信通道并告知主机,它愿意在某一地址和端口号上接收客户请求。
2.等待客户请求到达端口
3.接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程)处理此客户请求,并不需要对其他请求作出应答。服务完成后,关闭此新进程与客户的通信链路并终止。
4.返回第二步,等待另一客户请求。
5.关闭服务器。
而客户方:
1.打开一个通信通道,并连接到服务器所在主机的特定端口。
2.向服务器发送服务请求报文,等待并接收应答;继续提出请求。
3.请求结束后关闭通信通道并终止。
基于TCP(面向连接)的socket编程
基于TCP(面向连接的)socket编程的服务器端程序流程如下:
1.创建套接字(socket).
2.将套接字绑定到一个本地地址和端口上(bind)。
3.将套接字设为监听模式,准备接收客户请求(listen).
4.等待客户请求到来;当请求到来后,接受连接请求,反回一个新的对应于些次连接的套接字(accept)
5.用返回的套接字和客户端进行通信(send/recv).
6.返回,等待另一客户请请求。
7.关闭套接字。
基于TCP(面向连接)socket编程的客户端程序流程如下:
1.创建套接字(socket)。
2.向服务器发出连接请请求(connect)。
3.和服务器进行通信(send/recv)。
4.关闭套接字。
在服务器端,当调用accept函数时,程序就会等待,等待客户端调用connect函数发出连接请求,然后服务器端接受该请求,于是双方就建立了连接。之后。服务器端和客户就可以利用send 和recv 函数进行通信了。在客户端并不需要调用bind 函数, 因为服务器需要接收客户端的请求,所以必须告诉本地主机打算在哪个IP地址和端口上等待客户请求。因此必须调用 bind 函数来实现这一功能。而对客户端来说,当它发起连接请求,服务器端接受该请求后,在服务器端就保真了该客户端的IP地址和端口的信息。这样,对服务器端来说,一旦建立连接之后,实际上它已经保存了客户端的IP地址和端口号信息,因此就可以利用把返回的套接字调用send/recv函数与客户端进行通信。
//注 这里用于WinSock库中的函数,需要为程序链接相应的 ws2_32.lib 文件,VS2012 添加方法 菜单-项目-配置属性-链接器-输入-附加依赖项, 加入ws2_32.lib. (在服务器端和客户端都要添加)。
建立空 Win32 Console Application 类型的空项目TCPSrv 和 空项目 TCPClient, 分别添加 源文件:TcpSrv.cpp 和 TcpCleint.cpp
代码:
//TCPSrv.cpp #include <Winsock2.h> #include <stdio.h> void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1,1); err = WSAStartup(wVersionRequested, &wsaData); //根据socket版本,加载套接字库 if(err != 0) { return; } if(LOBYTE(wsaData.wVersion) != 1 || //低字节为主版本 HIBYTE(wsaData.wVersion) != 1) //高字节为副版本 { WSACleanup(); return; } printf("server is operating!"); //创建用于监听的套接字 SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; //定义sockSrv发送和接收数据包的地址 addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); //绑定套接字, 绑定到端口 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //将套接字设为监听模式, 准备接收客户请求 listen(sockSrv,5); //最大队列数目为5 SOCKADDR_IN addrClient; //用来接收客户端的地址信息 int len = sizeof(SOCKADDR); while(1) { //等待客户请求到来 //在服务器端,当调用accept函数时,程序就会等待,等待客户端调用connect //函数发出连接请求,然后服务器端接受该求,于是双方就建立了连接。 //然后服务器端和客户端就可以利用send 和recv函数进行通信了。 //当客户端请求到来时,该函数接受该请求,建立连接,
//同时它将返回一个相对于当前这个新连接的一个套接字, //保存于sockConn变量中,然后利用这个套接字与客户端进行通信,
//而原来的套接字仍继续监听客户端的连接请求。 SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrClient,&len); char sendBuf[100]; sprintf_s(sendBuf,"Welcome %s to 306 lab",inet_ntoa(addrClient.sin_addr)); printf("%s\n",inet_ntoa(addrClient.sin_addr)); //通过已连接的sockConn套接字发送数据 send(sockConn,sendBuf,strlen(sendBuf)+1,0); char recvBuf[100]; recv(sockConn,recvBuf,100,0); printf("%s\n",recvBuf); closesocket(sockConn); } } //TcpCleint.cpp #include <Winsock2.h> #include <stdio.h> void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1,1); //使用版本为1.1的套接字 err = WSAStartup(wVersionRequested,&wsaData); if(err != 0) { return; } if(LOBYTE(wVersionRequested) !=1 || HIBYTE(wVersionRequested != 1)) { WSACleanup(); return; } SOCKET sockClient = socket(AF_INET, SOCK_STREAM,0); sockaddr_in addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); //本机 addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); //向服务器发出连接请求 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //接收数据 char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf("%s\n",recvBuf); //发送数据 send(sockClient,"This is lisi",strlen("This is lisi")+1, 0); //关闭套接字 closesocket(sockClient); WSACleanup(); system("pause"); }
结果:
Server:
Client:
socket的详细介绍:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx
-
TCP/IP——应用层
2021-12-14 21:04:49TCP/IP——应用层 在OSI七层模型中,将应用...2)数据的传输:大部分应用程序所产生的数据需要在不同设备之间传递 在TCP/IP协议中,每一层都定义了不同功能的协议,如下图: 二、理解应用层功能 应用层为应用软件提供TCP/IP——应用层
在OSI七层模型中,将应用层,会话层,表示层综合看成了TCP/IP模型中的应用层
一、应用和数据
应用:
1)应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频
2)伴随着应用会有信息的产生。比如文本,图片,时评等都是信息的不同呈现方式
数据:
1)数据的产生:在计算机领域,数据是各种信息的载体
2)数据的传输:大部分应用程序所产生的数据需要在不同设备之间传递
在TCP/IP协议中,每一层都定义了不同功能的协议,如下图:
二、理解应用层功能
应用层为应用软件提供接口,使应用程序能够使用网络服务,应用层协议会指定使用相应的传输层协议,以及传输层所
使用的端口等
应用层的PDU被称之为Data(数据)
了解常见的协议端口号:
三、了解常见的应用层协议
FTP
FTP(文本传输协议)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构
FTP的运行过程如下图:
Telnet
Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在恩地计算机上完成远程设备工作的能力
具体工作流程如下:
HTTP
HTTP是互联网上应用最为广泛的一种网络协议,设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法 -
基于TCP或UDP的应用层协议有哪些?——Linux网络编程
2019-10-15 14:38:36一、基于TCP的应用层协议有:SMTP、TELNET、HTTP、FTP 基于UDP的应用层协议:DNS、TFTP(简单文件传输协议)、RIP(路由选择协议)、DHCP、BOOTP(是DHCP的前身)、IGMP(Internet组管理协议) ...参考博文01:https://blog.csdn.net/Wu000999/article/details/89293717
博文02 https://blog.csdn.net/u014082714/article/details/44994719
这个面试的时候面试官经常会问我,然后就总结了一下。
TCP/IP四层模型(数网传应):数据链路层(网络接口层)、网络层、传输层和应用层
OSI七层模型:物数网传会表应。一、 基于TCP/UDP协议的应用层协议有哪些?
TCP/UDP都是传输层的协议 (上面是应用层,下面是网络层IP层)
1、基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH
协议 全称 默认端口 HTTP ( 用的最多) HyperText Transfer Protocol(超文本传输协议) 80 FTP File Transfer Protocol (文件传输协议) 20用于传输数据,21用于传输控制信息 SMTP Simple Mail Transfer Protocol (简单邮件传输协议) 25 TELNET Teletype over the Network (网络电传) 23 SSH Secure Shell 22 2、基于UDP的应用层协议:DNS、TFTP(简单文件传输协议)、SNMP:简单网络管理协议
协议 全称 默认端口 DNS Domain Name Service (域名服务) 53 TFTP Trivial File Transfer Protocol (简单文件传输协议) 69 SNMP Simple Network Management Protocol (简单网络管理协议) 通过UDP端口161接收,只有Trap信息采用UDP端口162。 NTP Network Time Protocol (网络时间协议) 123 二、应用层协议介绍
(博文02原文链接:https://blog.csdn.net/mellymengyan/article/details/51115521)
在TCP/IP模型中,应用层是最高层。应用层包括所有的高层协议,并且不断有新的协议加入。TCP/IP参考模型中应用层和下层协议之间的关系如下:
应用层的许多协议都是基于(C/S client /server)方式的。
下面为我们就图片上的应用层协议来进行下简单的介绍:
基于TCP协议的都用C/S模式(客户端/服务器模式)
一:TELNET (远程登录) (C/S)(tcp)
*概述:
远程登录,它是Tnternet中用来进行远程访问的重要工具之一。远程登录功能允许用户与远程计算机进行动态交互,即用自己的键盘,鼠标等输入设备操纵远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。通信过程:
用户的终端实际上与本地的TELNET客户机程序进行通信,远程主机与远程TELNET服务器进行通信。然后通过TCP进行连接, 客户机与服务器之间采用NVT标准进行通信。1:建立与服务器的TCP连接;
2:从键盘上接收用户输入的字符;
3:把用户输入的字符串变成标准格式并送给服务器;
4:从远程服务器接收输出的信息;
5:把该信息显示在用户的屏幕上。二:FTP (文件传送协议)(C/S)(TCP)
概述:
文件传输协议,负责将文件从一台计算机传送到另一台计算机上,并且保证其传输的可靠性。
客户端提出文件传输请求,服务器接收请求并提供服务。首先在本地计算机上启动FTP客户程序,利用他与远程计算机建立连接,远程计算机上的服务端FTP程序被激活。这样本地的FTP程序成为一个客户,而远程FTP程序成为服务器,他们之间通过TCP建立连接,端口号为21.FTP协议的客户机与服务器之间需要建立两个连接, 一个用于控制数据传输(端口21), 一个用于数据传输(端口20)。数据连接主要用于数据传输,完成文件内容的传输。控制连接主要用于传输FTP控制命令和服务器的回送消息。
FTP的功能:
1:可以从本地上传和从服务器下载文件;
2:能够传输各种类型的文件,包括文件,图片, 视频等;
3:能够提供对本地和远程计算机的目录操作。
4:对文件进行改名删除等操作。FTP的服务获取有两种方式:一种是通过输入用户名和登录口令, 另一种是输入anonymous作为用户名,邮箱地址作为登录口令进行登录。
FTP客户与服务器之间可以通过命令和回答进行交互。
FTP的控制与数据连接
三:SMTP (简单邮件传输协议)(TCP)(C/S)
概述:
SMTP协议包括两个标准子集, 一个标准定义电子邮件信息的格式,另一个是传输邮件的标准。在互联网中,电子邮件的传送是依靠SMTP协议进行的。SMTP的主要任务是负责服务器之间的邮件传送,最大的特点是简单。只规定了电子邮件如何在互联网中通过TCP协议在发送方和接收方之间进行传送。工作方式:
基于客户/服务器方式进行的。发送人的主机为客户方,收件人的邮件服务器为服务方。在传送邮件的过程中,需要使用TCP协议进行连接(默认端口号为25)。发送主机先将邮件发送到本地SMTP服务器上,本地SMTP服务器与接收方的邮件服务器建立可靠的TCP连接,从而保证了邮件传输的可靠性。注意:
接收方必须使用POP3协议才能取得自己邮箱中的邮件。POP3协议的主要任务是实现用户计算机和邮件服务器的俩节,从邮件服务器的电子邮箱中读取邮件。
SNMP邮件传输过程
四:HTTP (超文本传输协议)(C/S)(TCP)详细内容在我的上一个博客里面有详细的介绍:HTTP协议基本知识另见博客
五:DNS (域名解析系统)(UDP)
概述:
用域名系统来处理IP地址和主机名之间的转换, 在DNS中主机名即为域名。
DNS也是一个应用层协议,为了提供主机名到IP地址的转换服务,DNS是运行在UDP协议之上,使用53号端口。DNS通常被其他应用层协议(HTTP, SMTP, FTP)所使用, 以便将用户提供的主机名解析为IP地址。
域名是一种分布式并具有层次结构的命名机制:例如:www.sina.com.cn, 其中最高域名是cn, 表示这台主机在中国。 第二级域名是com, 表示这个主机属于公司机构; 接下来是sina表示这台主机属于新浪网, 最左边的是www,表示该主机是一台web服务器。人们可以很容易的就记住它的域名,而不用他的IP地址。
查询方法:
1:递归解析:
当收到请求时, 域名服务器应返回所要求的解析结果,不论该服务器是否有相关的信息。该服务器没有相关信息时, 那么就该向其他的服务器进行请求,直到获得结果或者错误信息,然后把结果返回给解析请求者。2:重复解析:
接收到请求时, 域名服务器若有该域名的相关信息,则返回IP地址给解析请求者。若无该域名的相关消息,则该服务器不再进一步向其他域名服务器请求解析,而是返回一个可用的域名服务器的地址给解析请求者,让解析请求这自己去向该域名服务器作进一步的解析请求。二者的区别在于:前者将域名解析的工作交给域名服务器完成, 而后者则将主要的工作交给请求域名服务的主机来完成。
六:SNMP (简单网络管理协议)(UDP)
概述:
SNMP:“简单网络管理协议”,用于网络管理的协议。SNMP用于网络设备的管理。SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了“读”操作;管理员需要向设备执行设置操作,所以SNMP提供了“写”操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了“Trap”操作。
SNMP被设计为工作在TCP/IP协议族上。SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。管理方式:
SNMP管理方式
Get:读取网络设备的状态信息
Set:远程配置设备参数
Trap:管理站及时获取设备的重要信息七:TFTP (UDP)
概述:
TFTP协议全称为Trivial File Transfer Protocol。目标是在UDP之上上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它不包含FTP协议中的目录操作和用户权限等内容;工作流程:
l server在端口为69的UDP上等待Client发出写文件请求包
l Client通过UDP发送符合TFTP请求格式的WRQ包给Server。从UDP包角度看,该UDP包的源端口由Client随意选择,而目标端口则是Slient的69。
l Server收到Client的这个请求包后,需发送ACK给Client。对于写请求包,Server发送的ACK包确认号为0。
l Client发送DATA数据给Server,Sver接收数据并写文件
l 当Client发送的DATA数据长度小于512字节时,Server认为这次WRQ请求完成优点:
l 每个数据包大小固定,这样在内存分配处理的时候比较直接
l 实现简单
l 每个数据包都有确认机制,可以实现一定程度的可靠性缺点:
l 传输效率不高
l 滑动窗口机制太简单,并且该窗口仅有一个包的大小
l 超时处理机制并不完善,RFC1350并没有给出详细的处理机制说明三、TCP、UDP和HTTP关系
1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。
另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。3、结论:虽然HTTP本身是一个协议,但其最终还是基于TCP的。不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。
-
基于TCP的应用层协议 与基于UDP的应用层协议分别有哪些
2018-11-13 05:41:05基于TCP的应用层协议 与基于UDP的应用层协议分别有哪些 -
基于TCP协议的网络程序
2016-08-07 17:56:07TCP协议作为传输层的主要协议,不仅可以支持本地的数据通信,还可以支持跨网络的进程间通信。在互联网中,我们可以通过“IP地址+端口号”标识唯一的一个进程,“IP地址+端口号”被称为socket,这就是网络socket... -
TCP-IP应用程序的通信连接模式
2012-03-22 16:04:02本文的作者通过分析 TCP/IP 程序在不同级别上采用的不同方式来向您讲述了如何设计好 TCP/IP 应用程序的通信模式以及需要注意的相关问题。 -
为什么采用 UDP 协议,而不采用 TCP 协议实现?
2019-04-09 16:45:52登陆采用TCP协议和HTTP协议,你和好友之间发送消息,主要采用UDP协议,内网传文件采用了P2P技术。 QQ对于普通用户是采用UDP协议,对于会员用TCP协议 总来的说: 1.登陆过程,客户端client 采用TCP协议向服务器... -
TCP/IP 应用程序的通信连接模式
2014-02-17 13:10:25TCP/IP 应用层与应用程序 TCP/IP 起源于二十世纪 60 年代末美国政府资助的一个分组交换网络研究项目,它是一个真正的开放协议,很多不同厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 TCP/IP 协议组件... -
TCP应用程序通信协议的处理
2015-06-29 23:25:23TCP应用程序通信协议的处理flyfish 2015-6-29一 流式处理 TCP是一种流协议(stream protocol)。TCP数据是以字节流的形式传递给接收者的,没有固有的”报文”或”报文边界”或者用户可见的”分组”的概念。 它只是... -
STM32实现TCP IAP在线更新程序
2019-10-03 20:57:14IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域...利用TCP实现IAP即可以实现对应用代码的远程更新,可以对后期应用程序的维护和更新节省很大的人力物力。 -
【亲自实践总结】微信小程序WebSocket通信之TCP通信demo(协议分析 + 前端小程序代码 + 后端node.js代码)
2020-10-28 14:56:42使用TCP的应用:Web浏览器、电子邮件、文件传输程序; TCP工作原理: 在这里我就不过多赘述它的工作原理了,感兴趣的小伙伴可以去百度一下“ TCP的工作原理 ”,能够回答这个问题的太多了。 简单来说分为两部分: ... -
Java Web学习(1):Web应用程序与Web服务器
2016-07-09 21:45:20一Web应用程序 (1)什么是Web应用程序 应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览 器端/服务器端应用程序,这类应用程序一般借助浏览器来运行。 ... -
TCP 和UDP的区别以及各自的应用场景
2020-09-09 16:15:51UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也... -
计算机网络课程设计--基于TCP协议网上聊天程序--python实现带图形界面--socket--多线程
2020-08-05 09:49:21本次计算机网络课程设计是基于TCP协议网上聊天程序,程序中用到了套接字socket、多线程thread和Python自带的图形界面库Tkinter,在密码保存和传递方面用到了MD5算法,该程序的功能:用户注册、用户登录、显示在线... -
TCP/IP入门(4) --应用层
2015-04-08 15:06:58/**本篇博客由汗青ZJF整理并发布, 转载请注明出处:http://blog.csdn.net/zjf280441589/article/category/1854365*/TCP/IP中的应用层 DNS简介 域名系统是基于描述名字-地址映射的分布式计算机系统的实现,其作用是... -
传输层协议 ——— TCP协议
2022-06-11 14:58:17TCP协议被广泛应用,其根本原因就是提供了详尽的可靠性保证,基于TCP的上层应用非常多,比如HTTP、HTTPS、FTP、SSH等,甚至MySQL底层使用的也是TCP。现代的计算机大部分都是基于冯诺依曼体系结构的。 虽然这里的... -
TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
2019-03-07 16:49:13本人为阿里云的合作伙伴,在使用云这块的时候,经常会碰到一些这种协议、接口等各种各样的问题,以下内容为各种地方...OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一... -
一个进程中同时使用UDP和TCP传输数据
2018-04-24 11:08:03UDP是无连接的传输,在传输的过程中数据报可能会出现丢失,...有时,客户端也需要发送控制命令给服务端,但是控制不能丢失,这时就需要使用TCP协议来传输了。下面的这个示例代码是在一个进程中同时使用TCP和UDP来传... -
Socket编程--使用Tcp实现简单的聊天程序
2018-11-26 15:49:18Socket编程--使用Tcp实现简单的聊天程序计算机网络基础知识使用Tcp协议的Socket编程 在Android聊天程序的实现中,通常是通过http请求拉取最新聊天信息,由于http请求是无状态(Stateless)的,无法随时获知新消息的... -
TCP应用层主要协议
2015-09-27 21:51:05TCP/IP应用层对应了OSI参考模型的上三层(会话层、表示...是由哪个应用程序发出的。应用层主要包括一下协议: 文件传输类:HTTP、FTP、TFTP; 远程登录类:Telnet; 电子邮件类:SMTP; 网络管理类:SNMP; -
TCP 协议头全解
2022-04-02 18:30:50本文将带你学会 1. 从 wireshark 中来看面试中常问的 tcp 三次握手 四次挥手 真正的数据面目到底是什么? 2. 看到 TCP/IP 五层模型的具象化真实表达 3. 网络传输中 TCP 头全解析 -
TCP/UDP ,HTTP、FTP、SMTP等协议区别和应用场景
2020-06-12 15:54:02TCP/UDP 协议,HTTP、FTP、SMTP,区别及应用场景 一、OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒... -
关于开发网络应用程序时,传输层协议的选择
2018-08-12 16:31:45一旦应用程序开发者选择了一个传输层协议,则应用程序就建立在由该协议提供的传输层服务之上。 2 问题描述 套接字是应用程序集成与传输层协议之间的接口。在发送端的应用程序将报文推进该套接字,... -
TCP 协议有什么缺陷?
2022-05-09 15:00:18所以,今天就跟大家聊聊,TCP 协议有哪些缺陷?主要有四个方面: 升级 TCP 的工作很困难; TCP 建立连接的延迟; TCP 存在队头阻塞问题; 网络迁移需要重新建立 TCP 连接; 接下来,针对这四个方面详细说一下。 ... -
伪造ACK实现TCP数据注入
2021-04-04 12:49:18TCP创造并发展于1970年代~1980年代,这注定了它能工作但脆弱。 在TCP伊始,最重要的是可用,而不是高效,也不是安全,因此,在端到端TCP连接的中间,利用伪造的ACK,你很容易完成一种叫做 中间人攻击 的事情。 如果... -
网络基础之TCP/IP五层模型
2022-01-18 22:21:02文章目录互联网基础应用和数据应用的起源应用的实现——数据数据的产生数据传输网络参考模型与标准协议OSI模型TCP/IP参考模型TCP/IP之物理层常见传输介质TCP/IP之数据链路层以太网与MAC地址以太网的定义:MAC地址... -
在任意位置Reset掉任意的TCP连接
2018-11-07 22:10:24我本来是想模拟一个TCP接收端对收到数据包的确认,采用了Scapy这个简单的工具,然而折腾了大半天没有顺利搞定。其实我是不怎么懂Python的,折腾了大半天之后,竟然对Python产生了兴趣,正好旁边有人碰到了TCP连接被... -
TCP协议详解
2022-02-02 13:49:17TCP协议详解TCP服务的特点TCP头部结构TCP连接的建立和关闭(三次握手和四次挥手)TCP状态转移服务器端的状态转移过程客户端的的状态转移过程TIME_WAIT 状态超时重传拥塞控制 TCP协议属于传输层协议。从通信和信息... -
modbus tcp主站和从站_图文讲解PLC通讯MODBUS协议的应用及编程
2020-11-20 09:54:10PLC通讯MODBUS协议的应用及编程现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS,可想而知机器与机器通信的重要性。一:MODBUS系统框架图二:MODBUS运用MODBUS 通讯的底层...