C/S架构和B/S架构与TCP/IP的三次握手四次挥手

.NET B/S工作的基本流程 一.B/S工作原理 B/S架构采取浏览器请求,服务器响应的工作模式。 (1)用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息; (2)而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中; (3)从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务... 阅读详情

1、C/S架构和B/S架构
(1)、client(客户端) 和 sever(服务器) 两个不同的进程,数据交换。 
(2)、Browser(网站)和 sever (服务器)通过IP地址进行数据交互。 
2、INADDR_ANY 
代表的是本地地址(localhost),默认是(127.0.0.1),测试用的地址。 
服务器通信的端口和客户端的端口不一定相同。

服务器与客户端 
服务器: 
1.建立一个socket通信,相当于(open)函数的作用 
2.服务器端的结构体进行填充:struct sockaddr_in(神似) 
3.绑定网络结构体信息和这个网络通信fd(由第一步得到的文件描述符) 
4.监听这个ip和port:listen 
5.等待客户端的连接:accept是一个阻塞函数,返回值是一个文件描述符(创建一个连接通信的fd) 
6.至于谁先发送数据,没有规定。两者(C/S)都可以,但是要注意一点:一旦确定某一方发送数据,另一方就必须接收数据 
客户端: 
1.建立一个socket通信,相当于(open)作用 
2.客户端的结构体进行填充:struct sockaddr_in,客户端的port(端口)和服务器美誉一点关系 
服务器的结构体进行填充:struct sockaddr_in 
3.绑定网络结构体信息和这个网络通信fd(由第一步得到的文件描述符)(可有可无) 
4.客户端连接你的服务器connect(fd,服务器的结构体)

2、TCP/IP的三次握手四次挥手
三次握手:
首先,客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接: 
客户端将报文段中的SYN=1,并选择一个seq=x,(即该请求报文的序号为x) 将这个报文发送到服务器。此时,客户端进入同步已发送状态(SYN-SEND).SYN报文段不能携带数据,但是要消耗掉一个序号。 
服务器收到请求报文后,若同意建立连接,则回复报文中,SYN=1,ACK=1,并选择一个seq = y,且报文中确认号为x+1,序号为y .此时服务器进入同步已接收状态(SYN-RCVD) 
客户端收到服务器的同步确认后,对服务器发送确认的确认。将ACK=1,确认号为y+1,而报文首部的序号为x+1,将该报文发出后,客户端进入已连接状态(ESTABLISHED)。 
服务器收到客户端的确认后,也进入已连接状态。 


四次挥手
现假设客户端与服务器均处于连接建立状态,客户端主动断开连接:

1.客户端向服务器发送FIN报文:FIN=1,序号seq=上一个最后传输的字节序号+1=u,发送后,客户端进入FIN-WAIT-1状态。 
2.服务器接收到该报文后,发送一个确认报文:令ACK=1,确认序号ack = u+1,自己的报文序号seq=v,发送后,服务器进入CLOSE-WAIT状态。 
3.此时TCP连接进入连接半关闭状态,服务器可能还会向客户端发送一些数据。 
4.客户端收到来自服务器的确认之后,进入FIN-WAIT-2状态。等待服务器发送连接释放报文。 
5.如果服务器已经没有要发送的数据,则释放TCP连接,向客户端发送报文:令FIN=1,ACK=1,确认号ack =u+1,自己的序号seq = w(w可能等于v也可能大于v),服务器进入LAST-ACK状态。

6.客户端收到服务器的连接释放报文后,对该报文发出确认,令ACK=1,确认号ack=w+1,自己的序号seq=u+1,发送此报文后,等待2个msl时间后,进入CLOSED状态。

7.服务器收到客户端的确认后,也进入CLOSED状态并撤销传输控制块。

客户端状态变化:未连接—–>SYN-SEND—–>ESTABLISHED—–>FIN-WAIT-1—–>FIN-WAIT-2—–>TIME-WAIT—–>CLOSED 
服务器状态变化:未连接—–>SYN-RCVD—–>ESTABLISHED—–>CLOSE-WAIT—–>LAST-ACK—–>CLOSED 

--------------------- 
作者:我真的不是大坏人 
来源:优快云 
原文:https://blog.youkuaiyun.com/linzetao233/article/details/79963402 
版权声明:本文为博主原创文章,转载请附上博文链接!

NXP(imx8qxp)系列DDR校准以及android镜像烧录 文章目录一、 不得不吐槽以下nxp的这个代码镜像烧写的过程,做得太开源了,导致镜像根本烧录不进去,实属令人头痛。 一、 阅读详情

相关推荐

innovus 命令每日精要 | 掌控Innovus布线的利器——setNanoRouteMode详解

在数字IC后端设计的复杂世界里,布线优化是至关重要的一步。今天,我来给大家深入讲解Innovus工具中setNanoRouteMode命令的精妙之处,让你轻松驾驭布线策略,提升设计质量。setNanoRouteMode是Innovus中用于配置NanoRoute绕线行为的关键命令。通过其丰富的参数,你可以精细控制布局后阶段的绕线策略、信号完整性优化、工艺适配及设计规则修复等流程。下面,我将按功能分类总结其核心选项,并针对不同场景给出建议。

weixin_50820814的博客 3530

网络基础(三)02-网络的基础概念——DNS服务器之hosts文件配置 & 网站访问流程之三次握手 & BS架构-浏览器访问、CS架构-安装软件客户端 & 静态网站和动态网站-数据是否动态

网络

weixin_44867717的博客 776

安装部署 Guacamole 远程桌面网关

Guacamole 是Apache基金会提供的一组基于web的远程桌面访问工具,支持 VNC、RDP、SSH、 Telnet 等协议,支持远程透传音视频。

UsamaBinLaden6976498的专栏 1964

网络协议介绍及三次握手四次挥手详解

一.C/S B/S client:客户端软件 server:服务端软件 client<--------------基于网络通信-------------->server brower(浏览器)<--------------基于网络通信-------------->server 上网流程: 应用软件把请求发送给操作系统,操作系统调用硬件网卡通过网线把请求发送给服...

灯火阑珊处 702

Simulink Test Sequence实战:5步搞定复杂逻辑测试(附Excel模板)

本文详细介绍了如何利用Simulink Test Sequence模块高效完成复杂逻辑测试。通过对比传统Excel方法的不足,阐述了Test Sequence以流程图和自然语言描述测试场景的优势,并提供了从环境搭建、逻辑构建到与Test Manager集成、利用Excel模板进行数据驱动的完整5步实战指南,帮助工程师将复杂的状态机或逻辑流测试从繁琐的‘体力活’转变为高效的‘技术活’。

snow3的博客 251

华为2019秋招笔试Java实现(2)

华为2019秋招笔试Java实现(2) 笔试日期2019年8月14日 第二题(200分) 题目描述 某程序员小A,有一种表格数据需要存储在文件中。表格中的每一行,由若干个字段组成,每个字段可以是整数或字符串(字符串只包含数字、字母以及特殊字符!@#%^&*()",)。小A设计了一种存储格式,采用文本的方式对表格数据进行存储。文本文件中的每一行,代表了表格数据中的一行数据。具体格式描述如下: 1、采用逗号分隔不同的字段(逗号前后无空格); 2、数字直接采用10进制的文本存储; 3、字符串的存储规则如下

hewhys的博客 1549

软件的结构与网络基础

软件,国际中对软件的定位:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档以及数据。其他定义:1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。2.程序能够满意地处理信息的数据结构。3.描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软件=程序+数据+文档(代码也可理解成是一种文档)HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。于1990年提出。

qq_52846264的博客 1144

【STM32项目】老人健康跌倒检测系统实现(附教程PCB资料)

功能概述 跌倒检测 倾倒告警,人体角度倾斜至阈值触发蜂鸣报警 异常运动,加速度超过正常行动阈值时触发报警 心率监测 实时检测心率数据 血氧监测 实时检测采集血氧 血压测量 血压在线测量 红外体温 非接触体温采集方案 接触式体温采集方案 实时定位 中科微GPSGT-U12双频GPS北斗 GLONASS IRNSS定位系统 NEMA数据解析 可扩展高精度定位方案厘米级 屏幕显示 数据采集显示 告警阈值设置 语音提示 1欢迎使用老人智慧监测系统

洋洋的博客 1万+

OSI、TCP/IP、操作系统、B/S和C/S

一、OSI,Open System Interconnection,开放式系统互联 (7)应用层:靠近用户,为计算机用户提供应用接口,HTTP、HTTPS、FTP、POP3、SMTP (6)表示层:对应用层数据格式转换、加密、压缩,信息的语法和语义 (5)会话层:建立、管理终止表示层实体之间的通信会话 (4)传输层:建立、管理主机端到端的连接(端口号),TCP,UDP协议层 (3)网络层...

tanying1028的专栏 732

Kong API Gateway 配置与深入

Kong是一个开源的、高性能的API网关,提供了一种简单易用的服务间路由、流量管理和安全防护方案,其最初起源于Nginx Inc.,但后迁移至Apache Software Foundation。Kong支持RESTful、GraphQL、TCP/UDP等协议,可与AWS Lambda、Azure Functions、Google Cloud Functions等云函数平台集成。其主要功能包括:服务发现与负载均衡、请求代理、身份认证与授权、缓存、日志记录、监控指标、灰度发布、多种插件等。

AI天才研究院 2286

诊断测试工具CANoe.DiVa从入门到精通系列——开门见山

### 工具主要用于测试ECU的诊断功能。关于自动化诊断测试可以分为如下内容: ### -> 1、根据诊断需求规范进行cdd文件的编辑(现阶段主要是诊断问卷调查表); ### -> 2、新建Diva工程,导入对应的诊断数据库文件生成测试用例; ### -> 3、新建CANoe工程,导入CANoe.DiVa生成的Diva工程; ### -> 4、根据测试报告进行错误处理。

Soly_kun的博客 3556

Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上对用户的电脑操作系统环境依赖较大 比如: qq、微信、网盘、优酷这一类是属于需要安装的桌...

dayinji1212的博客 369

使用 Tesseract 在 C# 中进行光学字符识别(OCR)

你可以根据需要对 Tesseract 进行自定义配置,例如设置识别的分辨率、识别模式等。// 只识别数字// 设置自定义变量本文只讲述了简单的使用方法,未涉及字库训练,识别的准确率与训练的字库有关。

仰望星空的博客 4734

TCP和网络编程

TCP传输协议和网络编程

Leiwenti的博客 838

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

学习嵌入式的第三十天-数据结构-(2025.7.21)网络编程

摘要:本文系统梳理了网络编程的核心知识。对比了OSI七层模型与TCP/IP四层模型的结构差异,详细阐述了各层的功能特点。介绍了IP地址分类及子网划分方法,重点讲解了TCP/UDP编程基础,包括服务端/客户端的Socket编程流程、三次握手与四次挥手机制。通过对比TCP(可靠、面向连接)和UDP(不可靠、无连接)的特性差异,分析了不同场景下的适用性。最后总结了C/S与B/S架构的区别,以及P2P模式的直接通信特点。内容涵盖网络配置、协议原理及编程实现三个维度,为网络编程学习提供了完整框架。

Mickey_mouse123的博客 663

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【2019.10.08】Java 网络编程与异常的用法

网络通信概述 C/S 结构:客户端服务器 B/S 结构:浏览器服务器 网络编程:在一定的协议下,实现两台计算机的通信的程序 网络通信协议:连接和通信的规则 TCP/IP协议: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qga79mqh-1570465781187)(en-resource://database/7806:1)] 协议分类: UD...

ybsde博客 259

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Socket网络编程

Socket网络编程 一、网络变成入门 1.1 软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。 1.2 网络通信协议 **网络通信协议:**通信协议是计算机必须遵守的规则,只有遵守这些规则,计算机之间才

一名小白的博客 3056

网络编程3——网络层复习(三次握手、四次握手、滑动窗口)

bkg: 一、分层模型结构 OSI七层模型:物、数、网、传、会、表、应 TCP/IP 4层末次那个:网(链路层/网络接口层)、网、传、应 应用层:http、ftp、nfs、ssh、telnet…… 传输层:TCP、UDP 网络层:IP、ICMP、IGMP 链路层:以太网帧协议、ARP 二、C/S和B/S区别 C/S:缓存大量数据、协议选择灵活、速度快,但是不安全、跨平台、开发工作量较大 B/S:安...

qq_37299596的博客 305

打怪升级之小白的大数据之旅(二十八)<Java面向对象进阶之网络编程>

打怪升级之小白的大数据之旅(二十八) Java面向对象进阶之网络编程 上次回顾 总结

不断努力的数据汪 349

HTTP协议

协议是什么 HTTP协议是超文本传输协议,也就是 HyperText Transfer Protocol。 2、HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。(协议) 3、HTTP是一个在计算机世界里专门用来两点之间传输数据的约定和规范 (传输) 总结: HTTP是一个在计算机世界两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 (这里的两点指:1、服务器和服务器之间 2、浏览器和服务器之间)通信协议是指

fsh_st2104的博客 709

python网络数据传输_python 网络传输

网络开发架构C/S架构 : 需要安装一下才能使用client 客户端 我们用的 需要安装的server 服务端B/S架构 : 百度 博客园 谷歌 码云browser 浏览器server 服务端b/s和c/s什么关系?B/S架构也是C/S架构中的一种C/S架构的好处可以离线使用/功能更完善/安全性更高B/S架构的好处不用安装就可以使用统一PC端用户的入口osi五层协议应用层 pytho...

weixin_39623350的博客 1009

微服务架构实战-3-高性能Netty服务器-1:网络编程模型基础

一、网络通信简介 1、软件结构 ​ C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 ​ 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机 的通信的程序。 2、网络通信协议 ​ **网络通信协议:**通信协议是计算机必须遵守的规则,只有遵守这些规则,计算机之间才能

金霖海的博客 409

web测试-tcp,udp协议,到http协议

查ip地址:命令提示符:ipconfig 虚拟机桥接需要本机或者虚拟机的防火墙关掉。 web架构: b/s架构(Browser(服务器)/Server结构)(标准规范,架构):主要是在服务器端,升级也是主要在服务器端。 c/s架构(Client(客服端)/Server结构)(非标准):QQ,微信。客户端和服务器端都需要升级。 P2P架构。 web客户端技术: 浏览器主要工作原理: 1.页面渲染引擎...

weixin_43685378的博客 1033

JavaWeb之网络编程/通信

第一章 网络编程/通信入门 1.1 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。百度百科(计算机网络). 1.2 软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优

bengbeng_biu 1486

python面试第二部分_Python面试重点(进阶篇)

简述 OSI 7层模型及其作用?(2分)应用层:文件传输 电子邮件 文件服务 虚拟终端表示层:数据格式化 代码转换 代码加密会话层:建立或解除和其他节点的连接传输层:提供端对端的接口网络层:为数据包选择路由数据链路层:传输有地址的帧 错误检测功能物理层:以二进制在物理设备上传输数据简述 TCP三次握手、四次回收的流程。(3分)TCP三次握手过程主机A通过向主机B 发送一个含有同步序列号标志位的数据...

weixin_39842918的博客 108

Python网络编程——TCPIP协议

1、网络编程就是通过网络让不同计算机上运行的程序可以进行通信。 2、软件间的通信分为两种 应用类程序(QQ)和web类程序(百度) 3、客户端:就是常用的程序QQ; 服务端:一致运行着个别人的提供服务的机器 4、软件开发架构:C/S 架构(客户端和服务器的架构)和B/S架构(浏览器端与服务器端架构) 5、IP地址是电脑在网络世界中全球唯一标识,地址是一个32位的二进制数,被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~2

一直在水些技术小文 655
上一篇: TCP\IP、HTTP、HTTPS、socket、B\S、C\S、REST、RPC
下一篇: SpringBoot 编译通过,启动报找不到类,找不到符号
FoxOrg
博客等级 码龄10年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值