SOCKET、TCP/IP、UDP、HTTP、FTP总结

网络通信——UDP\TCP\ Socket、http\https、SMTP、FTP,TCP/IP协议簇,OSI网络模型(个人向) 一、HTTP/HTTPS 什么是HTTP? 超文本传输协议,是一个基于请求与相应,无状态,应用层协议,基于TCP/IP协议传输数据 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。 什么是HTTPS? 是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全通信,加密数据包 区别: 1.https协议需要到CA申请证书。 2.http 阅读详情

一、TCP/UDP,SOCKET,HTTP,FTP简析

TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层、传输层和应用层:

网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议

传输层:TCP协议与UDP协议

应用层:FTP、HTTP、TELNET、SMTP、DNS等协议

HTTP是应用层协议,主要解决如何包装数据,其传输都是被包装成TCP协议传输。可以用SOCKET实现HTTP。

SOCKET是对TCP/IP协议的封装,Socket本身并不是协议,而是实现传输层协议的一种编程API,可以是TCP,也可以是UDP。

二、Socket连接与HTTP连接区别

1、【Socket】

    由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。理论上客户端和服务器端一旦建立起连接将不会主动断掉;但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等各种环境因素可能会使连接断开,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连(用于释放资源),因此需要通过轮询告诉网络(发送心跳消息),该连接处于活跃状态。

2、【Http】

   HTTP协议是建立在TCP协议之上的一种应用,HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”(即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉),要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开.(目前基于http协议传输的主要有http协议和基于http协议的Soap协议(web service),常见的方式是 http 的post 和get 请求,web 服务)

HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。

3、【适用情况】

    很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;

基于Socket传输的特点:Socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等

    若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

基于http协议传输的特点:基于http协议传输方式适合于对传输速度,安全性要求不是很高,且需要快速开发的应用。如公司OA系统,互联网服务等。

4、【SOCKET原理】

   (1)套接字(socket)概念:

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

(2)建立socket连接:

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求

客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

(3)SOCKET连接与TCP连接

创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

5、【传输特点】

1) Socket 传输的特点:

  a )优点:传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)

     i) 传输数据时间短,性能高

     ii)适合于客户端和服务器端之间信息实时交互

     iii)可以加密,数据安全性强

  b )缺点:

    i)需对传输的数据进行解析,转化成应用级的数据

    ii)对开发人员的开发水平要求高

    iii)相对于Http协议传输,增加了开发量

2)http协议的传输特点

   a)优点

    i)基于应用级的接口使用方便

    ii)程序员开发水平要求不高,容错性强

  b) 缺点:

    i)传输速度慢,数据包大(Http协议中包含辅助应用信息)

    ii)如实时交互,服务器性能压力大。

    iii)数据传输安全性差

三、TCP 与 UDP

1、【概念】

  TCP --- 传输控制协议,提供的是面向连接、给用户进程提供可靠的全双工的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求

  UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议(即广播式数据传输,不进行数据验证,不是面向连接的协议)。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

2、【适用情况】

   TCP发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此TCP最大的优点是可靠。一般网页(http)、邮件(SMTP)、远程连接(Telnet)、文件(FTP)传送就用TCP

   UDP是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,UDP一般用于多点通信和实时的数据业务,比如语音广播、视频、QQ、TFTP(简单文件传送)、SNMP(简单网络管理协议)、RTP(实时传送协议)RIP(路由信息协议,如报告股票市场,航空信息)、DNS(域名解释)。注重速度流畅。

3、【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状态,

         完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

四、FTP

FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。

FTP的主要特征:

1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。

2.数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。

 

文件类型:

1.ASCII码文件类型(默认选择),以NVTASCII码形式通过数据连接传输;

2.EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统;

3.图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。


FTP 下载原代码 软件本身有部分, 1 socket 通讯,用来传输文件的信息。 2 通过文件信息,比对,过滤不需要下载的文件 3 下载文件 软件本身有部分, 1 socket 通讯,用来传输文件的信息。 2 通过文件信息,比对,过滤不需要下载的文件 3 下载文件 立即下载

相关推荐

微信小程序一键登录和临时code用JWT进行微信用户授权

2、跨域进行调用接口时候,唯一标识UnionID和会话密钥 session_key如果还是用的我自己的,会出现无法调用微信服务器接口,就需要将唯一标识和会话密钥换成前端的,才可以,我自己认为这样很不合理,暂时还没有找到原因。2、能够获取到openId,但是也只能获取到openid,无法获取用户的相关信息,经过查阅官网发现,现在微信那边已经将用户信息加密,需要调用提供的接口进行解密然后获取用户数据,问题原因已经找到解决方法,还未即使更改。1、我这是一台电脑实现的前端调用后端接口,不用考虑跨域的问题。

qq_67653492的博客 5713

计算机网络之应用层-FTP、P2P、Socket编程

1. FTP FTP 即 文件传送协议( File Transfer Protocol ),用于在互联网的两个主机间实现文件互传的网络应用的应用层协议。 FTP的服务器进程由两大部分组成: 1. 主进程,负责接受新的客户请求; 2. 从属进程,负责处理单个客户请求, 与具体客户进行交互。 FTP客户与服务器之间的连接分为两种: 1. 控制连接,专门用于用户登录、服务器授权,为持久连接; 2. 数据连接,专门用于文件传输,为临时连接。 FTP专门使用一个独立的控制连接传输控制信息, 与..

分享前端工程化、AI 应用、Agent 开发与大模型实践! 1139

网络攻防实验——网络监听

利用CAIN实现ARP监听。

Trieyes_of_feng的博客 3197

udp,ftp,smb,socket传输速度对比

udp: 传输速度最快,但是不保证传输质量 ftp: 比smb,http要快,但是对于1M以下的图片 http要快 smb: 大一些的图片比http要快 socket:是一种连接协议,不负责传数据,需要用socket搭建成tcp才可以传 ftp,sftp:都是用tcp实现的 终极传输,史上最快:多线上传,压缩上传,压缩+多线上传 上述传输的极限都是带宽大小,多线上传这个不知道 ...

曾小辉的博客 1万+

《派出你的AI同事:WorkBuddy案例实战》062:投研资讯摘要与预警

投研资讯摘要与预警:新闻、公告、行情交给 AI 同事提炼与预警,投研从“刷资讯”变成“读摘要”。

LuckyHanMo的博客 182

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

SOCKET,TCP/IP,UDP,HTTP,FTP总结

一、TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议  HTTP是应用层协议,主要解决如何

发粪涂墙的小毛驴的博客 1155

通用、可复用的 AI Skill 开发基本流程

-----name:唯一标识符(建议用领域-功能格式):自然语言描述触发条件(AI 依赖此判断是否激活)tags(可选):便于分类和搜索version:支持后续迭代步骤输出物1. 定范围触发场景描述2. 写元数据name3. 填内容结构化 Markdown 文件4. 做验证可运行 + 符合规范5. 去集成放入对应 IDE 目录6. 持续维护跟进框架更新通过这套流程,你不仅可以开发(Hooks 最佳实践)(原生 WebGL 优化)(Pandas/Numpy 高效写法)

lpfasd123的博客 729

HTTP,Socket,TCP/IP,UDP,FTP总结

一、 HTTP,Socket,TCP/IP,UDP,FTP解析TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议; 传输层:TCP协议与UDP协议; 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 。 HTTP是应用层协议,主要解决如何包装数据,其传输都是被包装成T

FreeTourW的博客 893

openharmony之启动恢复子系统详解

需求: 添加一个名为my_service的自定义服务步骤1: 创建服务配置],],"env": [步骤2: 添加到主配置],"jobs": ["cmds": [步骤3: 验证配置# ✅ 检查配置格式 jq . /system/etc/init/my_service.cfg # 🔄 重新加载配置 begetctl reload # 📊 验证服务状态 begetctl dump_service my_serviceOpenHarmony init进程的完整生命周期。🔄 三阶段启动模型⚙️ 配置体系。

m0_67505153的博客 602

爆破shadow文件密码脚本(完成版)

由于添加了一个for循环,再稍作修改,让password not found!print(f"Trying password:")显示爆破的密码和过程。将代码中的password="123456"替换成下面代码。line.strip()函数首尾去空格。

m0_56578216的博客 772

HTTP,FTP,TCP,UDP及SOCKET

一、TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输。可以用SOCKET实现HTTP。SOCKET是实现传输层协议的一种编程API,可以是TCP

北岛知寒 1060

OAuth2.0集成SpringSecurity加JWT实现单点登录

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以

Nicky's blog 9038

SOCKET,TCP/UDP,HTTP,FTP

SOCKET,TCP/UDP,HTTP,FTP   (一)TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议  

Wu_Fei_Li的博客 542

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

聊聊Socket、TCP/IP、HTTP、FTP及网络编程

聊聊Socket、TCP/IP、HTTP、FTP及网络编程 网络编程 声明:转自http://blog.jobbole.com/99694/;如有侵犯版权,请联系我删除。 1 这些都是什么 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输。这里就要使用到TCP/IP协议。 1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。 IP层负责网络主机的定位,数据传输的路由,由IP

weixin_51429303的博客 585

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[网络] SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 HTTP是应用层协议,其传输都是被包...

weixin_30900589的博客 88

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 HTTP是应用层协议,其传输都是被包装成

陌上人如玉,公子世无双。 753

SOCKET,TCP/UDP,HTTP,FTP浅析

SOCKET,TCP/UDP,HTTP,FTP   (一)TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议   HTTP是应用层协议,其传输

nvn020952的专栏 447

TCP/UDP,SOCKET,HTTP,FTP简析

(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层: 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 HTTP是应用层协议,其传输都是被包装成

sunny的专栏 928
上一篇: 冒泡、简单选择、快速插入排序回顾(待续)
下一篇: Cocos2d-JS 加载网络地址图片
轩小川
博客等级 码龄16年 46粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值