http与tcp简介、三次握手与四次挥手

计算机网络 TCP三次握手四次挥手 TCP 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在计算机领域这是一个非常重要的协议,基于传输层 TCP 协议的应用层程序有许多:FTP、HTTP1/2等。TCP 创建时需要经过三次握手才能成功建立连接,关闭连接的也需要经过四次挥手才能彻底拆除连接。正是因为复杂的传输协议才为 FTP 提供的可靠性,同时... 阅读详情

OSI七层模型:应用层、表现层、会话层、运输层、网络层、数据链路层、物理层

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

TCP/IP协议族包括IP\TCP、UDP、FTP、HTTP、DNS等

TCP/IP协议族的四层:应用层、传输层、网络层、链路层

层名作用示例
应用层该层面向用户,决定了向用户提供应用服务时的通信活动http(超文本传输协议),ftp(文件传输协议),dns(域名系统)
传输层应用层会将数据交付给传输层进行传输tcp(传输控制协议),udp(用户数据协议)
网络层处理在网络上流动的数据包,负责在众多网络线路中选择一个传输线路,而且这需要ip和mac地址的支持ip(网络协议)
链路层该层主要是处理网络的硬件部分nic(network interface controller)网卡

 

三握手过程:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机)  ACK(acknowledgement 确认)  PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

示意图如下:

1.第一次握手:发送端发送一个带SYN(Synchronize)标志的数据包给接收 端,用于询问接收端是否可以接收。如果可以,就进行第二次手                                                                                                                   

2. 第二次握手:接收端回传给发送端一SYN/ACK(Acknowledgement)的数据包,给发送端说,我收到你给我发送的SYN标志了,我再给你传一个ACK标志,你能收到吗?如果发送端收到了SYN/ACK这个数据包,就可以确认接收端收到了之前发送的SYN, 然后进行第三次握手。                                                                                                               

3.第三次握手:发送端会给接收端发送一个带有ACK标志的数据包,告诉接收端我可以收到你给我发送的SYN/ACK标志。接收端如果收到了这个来自客户端的ACK标志,就意味着三次握手完成,连接建立,就可以开始传输数据了

四次挥手过程:

1.某进程先调用close()函数,该端TCP发送FIN(fin = i),表示数据发送完毕,需要关闭连接,称为主动关闭。
2.接收到FIN的服务器端执行被动关闭。进行确认(ACK , ack = i+1),在该进程接收的其他所有数据之后添加文件结束符(end-of-file)。
3.一段时间之后(虽然服务器接收被动关闭命令,但它不能立即关闭,因为服务器端还有其他数据处理),接收到文件结束符的进程调用close()函数关闭套接字,这导致它的TCP也发送FIN(fin = j)。
4.主动关闭连接的一端确认(ACK , ack = j+1)最后发送的FIN。

重点:为什么建立连接需要三次握手,而断开连接需要四次挥手?

 

建立、断开连接都需要两次请求与确认,只是建立连接时SYN、ACK可以同时发回;而在断开连接时,由于被动关闭的一端可能还会发送数据,只有数据发完后才能发送ACK,所以只能分开发送,也就造成了建立连接为三次(建立连接时由于握手期间连接未完全建立,故不能发送其他数据),断开连接反而成了四次。

 

 

 

 

 

Wireshark抓包 Wireshark抓包分析 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段。 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置。 其中,ACK是可能与SYN,FIN等同时使用的,比如 阅读详情

相关推荐

HTTP建立连接的重要一步:TCP三次握手及四次挥手

上三篇文章分别提到了网络模型,http和https协议; 简单理解网络分层模型--向计算机网络迈一小jio 看懂Http协议,向计算机网络迈进一步~ 站在HTTP“肩膀”上-看懂HTTPS协议 这三篇文章和这次要提到的TCP相关,不过之前的内容没有完全掌握并不影响理解TCP相关,但是还是强烈建议将前面的一点一点摸透,这样才能和TCP相关一起建立起来一个知识体系,不会那么容易忘记; 首先,为什么一定要将TCP相关啃下来? 原因1:理解TCP相关,尤其是三次握手和四次挥手过程...

StefanSSSS的博客 5200

四次挥手过程与原因

当一方发送完数据请求关闭连接时,TCP会进行四次挥手,过程如下 TCP A TCP B 1. ESTABLISHED ESTABLISHED 2. FIN-WAIT-1 --> <SEQ=100><CTL=FIN> -->CLOSE-WAIT

Zookkk的博客 882

抓包分析TCP三次握手和四次挥手

抓包分析 实验主要两个内容: TCP三次握手和四次挥手过程 分析HTTPS的TLS握手过程 TCP三次握手 windows10下wireshark工具,浏览器访问47.93.242.17端口443,即HTTPS协议,源端口54407 过滤规则 ip.dst ==47.93.242.17 or ip.src == 47.93.242.17 过滤ip tcp.port == 80 过滤端口,无论是源端口还是目的端口 三次握手过程 第一次握手tcp报文段 报文段分析: 源端口:544

tianwange的博客 4022

第五讲:传输层协议介绍(三次握手、四次挥手)

文章目录一、传输层协议介绍1、TCP协议概念2、UDP协议概念二、TCP协议1、TCP协议介绍2、TCP报文段的格式2.1 TCP报文段首部的格式2.2 各字段说明3、 TCP三次握手3.1 三次握手步骤讲解3.2 为什么是三次握手,不是二次握手,也不是四次握手3.2.1 为什么不是二次握手?3.2.2 为什么不是四次握手?4、TCP四次挥手4.1 四次挥手步骤讲解4.2 为什么是四次挥手,不是三次挥手?5、TCP连接常用的端口号三、UDP协议1、UDP报文段的格式1.1 UDP报文段首部1.2、各字

种一颗树最好的时间是十年前,其次是现在! 2807

网络——HTTP与HTTPS三次握手和四次挥手

HTTP协议本身并不直接处理TCP连接的建立和关闭,这些是由底层的TCP协议来完成的。但是,由于HTTP通常运行在TCP之上,因此理解TCP的三次握手(用于建立连接)和四次挥手(用于关闭连接)对于理解HTTP通信过程是非常有帮助的。

oopxiajun博客专栏 1817

HTTP三次握手四次挥手过程(清晰梳理)

HTTP三次握手四次挥手过程HTTP三次握手四次挥手过程基本描述工作流程建立连接-TCP三次握手为什么三次握手断开连接-TCP四次挥手为什么四次挥手 HTTP三次握手四次挥手过程 基本描述 http协议全称:HyperText Transfer Protocol,超文本传输协议;用于服务传输超文本到本地浏览器的传送协议 应用层协议、C/S模型、无状态 通常承载与TCP协议层上,有时也承载与TLS或SSL协议层上,此时成了https [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i

Stephen的博客 1401

TCP的三次握手与四次挥手(详解+动图)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34419326的博客 1319

光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟

本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型(mie scattering),计算其散射和吸收截面、局域场增强和远场散射分布,同时将截面和远场结果与解析解进行了比较,验证了仿真模拟的准确性。

q895235273的博客 3593

HTTP协议简介及TCP三次握手和四次挥手

一、TCP/IP协议介绍 在介绍HTTP协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层,链路层,网络层,传输层和应用层。 从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有的数据的前面加一个数据控制头,数据封装格式如下: 其中,对于TCP传输协议,客户端在与服务器建立连接前需要经过三次握手,过程如下:

enre_enre的博客 1934

组态王7.5和SQLsever数据库交互

摘要:本文详细介绍了组态王7.5与SQL Server 2016数据库交互的实现流程,包括建立连接、数据存储与查询操作。主要内容涵盖ODBC数据源配置、数据库表格创建、数据插入及查询功能实现(含日期控件查询)

gsjkwg的博客 1580

卡诺图化简法注意事项+竞争冒险知识点总结

今天反思以下卡诺图化简法中的注意事项。 卡诺图看起来简单,但如果不熟悉的话很容易出错,因此要对画圈的规则比较熟悉。

weixin_42415266的博客 1万+

一份tcp、http面试指南

一、TCP 要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于tcp协议的。 TCP/IP 协议分层模型 物理层:将二进制的0和1和电压高低,光的闪灭和电波的强弱信号进行转换 链路层:代表驱动 网络层 使用 IP 协议,IP 协议基于 IP 转发分包数据 IP 协...

liangkk的博客 361

舵机操作手册

微型伺服马达原理与控制(中鸣) 1、微型伺服马达内部结构一个微型伺服马达内部包括了一个小型直流马达;一组变速齿轮组;一个反馈可调电位器;及一块电子控制板。其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低。 2、微行伺服马达的工作原理一个微型伺服马达是一个典型闭环反馈系统,其原理可由下图表示: 减速齿轮组由马达驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该电位器把

HEIMENGER的博客 3137

[网络协议篇] TCP协议一

TCP(Transmission Control Protocol)传输控制协议,提供了一种面向连接可靠的字节流服务。属于传输层协议。

qq_45776114的博客 3074

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

从Xilinx FPGA到MIPI DSI LCD屏:手撸代码的实战经验分享

本文分享了使用Xilinx FPGA驱动MIPI DSI LCD屏的实战经验。作者从依赖官方IP核失败,到与底层D-PHY IP缠斗,最终通过手撸代码,直接配置GTY收发器原语并实现完整的D-PHY与DSI协议栈,成功点亮屏幕。文章详细剖析了协议细节、Vivado工具链的调试技巧与避坑指南,为FPGA工程师提供了从理论到实践的宝贵参考。

weixin_29188997的博客 400

关于HTTP和TCP/IP的总结文章

看了之前自己收藏的博客,其中有三篇涉及到http,就一直留着,想着得空的时候看看,不过为了避免丢失,我还是打算先记录下来,等系统的学了之后,自己再输出 文章链接 1、HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全) 2、TCP/IP协议简述+常见面试题 3、两张动图-彻底明白TCP的三次握手与四次挥手 4、面试官,不要再问我三次握手和四次挥手 ...

高山仰止,景行行止 165

手把手教你学PCIE--PCIe架构详解 - 物理层结构

在前一篇文章中,我们对PCIe与其他总线协议进行了对比分析。本文将深入探讨PCIe的物理层结构,这是PCIe协议的核心组成部分之一。物理层负责实际的电气信号传输,理解其工作原理对于设计和调试PCIe系统至关重要。PCIe的物理层是协议栈的最底层,负责将数据从链路层转换为电信号进行传输,并在接收端将电信号还原为数据。差分信号传输:通过一对差分信号线实现高速、低噪声的数据传输。时钟恢复:从数据流中提取时钟信号以同步收发双方。均衡与预加重:补偿信号在传输过程中的损耗,提高链路可靠性。

MHD0815的博客 362

TCP三次握手与四次挥手详解

本文详细介绍了TCP连接中的三次握手和四次挥手的原理,并在此基础上,详细介绍了其衍生的十多个面试问题。

青灯文案的博客 1万+

【python基础】一文掌握 Jupyter Notebook 的使用(超级详细!)

是一个非营利组织,致力于为多种编程语言的交互式计算开发开源软件、开放标准和服务。Jupyter 于 2014 年由 Fernando Pérez 从IPython衍生出来,支持几十种编程语言的执行环境。Jupyter 项目主要开发并支持(.ipynb 文件格式)、JupyterHub和JupyterLab等交互式计算产品。

数据知道的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HTTP的三次握手和四次挥手

1. HTTP的三次握手 2. HTTP的四次挥手 3. HTTPS的三次握手

公众号:前端充电宝 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

用wireshark抓包来分析TCP三次握手和四次挥手操作

说明:系统是windos10的,调用http接口来看TCP三次握手的连接及四次挥手的过程。 wireshark安装很好安装,官网下载自己系统的版本然后下载一键默认安装即可,安装完毕双击启动。就是如下图片: 也可以点击菜单选项捕获,用来选择要捕获的网络,也可以全选,点开始 这个时候进监控页面,因为其他开发的工具也在开着,可能会一直监控到对你来说没有用的信息,此时需要过滤捕捉你需要的信息,如,代表,过滤目标ip和源ip都是此ip,TCP的端口为8089才会抓取到控制台上。 ip.addr ==.

dfBeautifulLive的博客 2万+

WINCC7.3破解文件

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

STM32F407中文手册

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

http三次握手和四次挥手

目录前言一、HTTP和HTTPS1. HTTP2. HTTPS二、什么是 TCP 连接的三次握手1. 三次握手2. TCP 协议优点3. TCP 协议缺点三、 为什么 TCP 连接需要三次握手四次挥手1. 为什么是三次握手?2. 为什么是四次挥手?总结 前言 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 一、HTTP和HTTPS 1. HTTP HTTP 请求的过程 域名解析 --> 发起 TCP

m0_57712926的博客 3633

HTTP 与 HTTPS 的三次握手与四次挥手详解

直接基于 TCP 进行通信,无加密层。TCP 三次握手建立连接,四次挥手断开连接。增加了 SSL/TLS 握手过程,确保数据的加密传输。有证书情况下,SSL/TLS 握手涉及证书验证和密钥交换过程。无证书情况下,SSL/TLS 握手流程简化,可能跳过证书验证,但仍然需要协商加密协议和密钥。通过三次握手和四次挥手,HTTP 和 HTTPS 确保了可靠的连接建立与关闭,而 HTTPS 进一步通过 SSL/TLS 协议实现了数据加密和安全性提升。

weixin_65477256的博客 5272

http——三次握手四次挥手

httphtttp:TCP三次握手四次挥手(TCP连接的释放) htttp: 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。 TCP 传输控制协议(TCP,Transmission Control Pro

weixin_52148548的博客 5369

深度解析 TCP 三次握手与四次挥手:从原理到 HTTP/HTTPS 的应用

本文深入解析TCP协议的核心机制——三次握手和四次挥手。通过Mermaid图表和代码示例,详细阐述了TCP连接的建立与终止过程。三次握手(SYN、SYN+ACK、ACK)确保可靠连接建立,同步序列号;四次挥手(FIN、ACK、FIN、ACK)保证安全断开连接,避免数据丢失。文章还介绍了TCP在HTTP/HTTPS中的应用,以及相关状态转换,帮助读者全面理解TCP的网络通信原理。无论是网络初学者还是开发者,都能从本文掌握TCP的核心工作机制。

前端结城的博客 2025
上一篇: Java代理模式简介
下一篇: Spring基础: Bean的两种创建规则,三种创建方式,作用范围,生命周期
乐交诤友
博客等级 码龄10年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值