client ---基于网络通信--- server
browser ---基于网络通信--- server
server端必须满足的条件:
1. 稳定运行(网络. 硬件. 操作系统. 服务端软件)
2. 服务端必须绑定一个固定的地址
两大要素:
1. 底层的物理链接介质. 为通信铺路
2. 一套统一的互联网通信标准 --> 互联网通信协议
互联网协议就是计算机界的英语

物理层: 发送电信号. 将传入的信息通过高低电频的方式进行传输 -> 高电频(1) 低电频(0)
数据由大量的1010101011100101传输. 其中head包括16个字节(发送者6. 接受者6. 数据类型6). data至少包括64个字节
数据链路层: 分组. 主要是靠ethernet网通过广播的方式传递信息(以太网协议有报头和数据).规定每台计算机都配有一个mac地址(物理地址)
且只能在一个局域网内可以通过mac地址传输信息. 互联网由众多局域网组成. 各局域网之间通过各种设备链接
网络层: IP协议规定每台计算机都有一套ip地址(点分十进制组成). ip地址和ip子网掩码的按位与可以定位当前地址的局域网地址也就是子网地址.
所以想要进行网络通信: 第一件事就是拿到对象的ip地址和ip子网掩码来计算出子网地址.
1. 如果一样 -> 在一个局域网内 -> 基于mac地址通信
2. 如果不一样 -> 就通过ip地址定位到对方的区域网. 然后通过mac地址进行通信
arp协议可以使ip地址解析出对应的mac地址. 这样基本一个ip地址就可以定位一个计算机. 通常使用ping 192.168.11.181
arp是怎么获取mac地址的:
1. 在同一个局域网中. 直接通过广播的方法发送一个通信携带目标ip的地址. 收到自己ip地址的计算机会将mac地址返回给发送的计算机
2. 不在同一个局域网中. 计算机发送arp协议给网关(相当于是每一个局域网的管理者. 每个班级的班主任).
网关通过路由协议传递给该局域网的对应ip地址. 并将自己的mac地址按照原路返回
传输层: 基于TCP/UDP协议. 赋予每一应用软件一个端口(port).
应用层: 基于HTTP/FTP/mail协议对软件进行包装
标识地址的方式:
ip地址和mac地址就可以定位唯一一台计算机
ip+mac+port可以定位计算机唯一一个基于互联网通信的软件
网络通信中: 发送网络信息的一端一直在打包信息. 接收的一端一直在拆包.
其各种层级操作都是由操作系统去调用的. 所以应用层在将数据交给操作系统的时候应用层数据就已经发送完毕. 后面的他都控制不了了
url(Universal Resource Locator)是统一资源定位符. 用来定位全世界唯一的资源. 其默认端口是80. 浏览器会自动补全省略
url中的域名对应一个ip地址.
浏览器访问url的过程:
1. 浏览器接收用户操作产生一个url地址.
1. 先将url的域名提交给DNS服务器. 然后会收到一个ip+port.
2. 然后会根据这个ip地址和端口定位到唯一的计算机软件.
3. 然后通过url中携带的path找到计算中想要的文件
4. 服务器将文件返回给客户端
计算机之间通过交换机传递信息. 但是一个包发送给目标计算机后. 不会按照原来的方法继续发送广播. 其原因是交换机存在一个mac地址学习.
来解决重复发广播的问题. 其中会存一张mac地址表. 将每一次通信的双方记录下来. 长期下来所有的mac地址都会被学习到交换机中

三次握手建立链接
四次握手断开链接
面试常问问题:
1. 为何建立链接需要三次而断开需要四次
答案: 建立链接的时候没有真正的数据传输. 所以中间两步可以合成一步.
断开连接的时候由于有数据传输. 如果客户端数据先传输完就客户端先断. 但是服务端数据可能还没有传输完成. 所以不能同时发请求. 有四次
2. 为何tcp协议是可靠协议而udp是不可靠协议
因为udp协议发送请求不等待对方响应直接把缓存删除掉. tcp会等待响应之后再将缓存删除
tcp协议的优点: 安全可靠 udp协议: 速度快
3. tcp协议建立链接与断开链接的状态信息及其表示意义

限制的是同一时刻的请求.而非连接数
就是基于上文tcp协议的好人性质(所有外部发送的请求都会接收并返回). 攻击者制造大量请求发送给服务器. 造成了服务器产生大量的堆积请求. 有的网站的并发量不够. 真正的用户就访问不进来了.相当于很多假的请求挡在服务器门口. 导致服务器产生宕机这种的情况就是ddos攻击. ddos攻击半连接池的增大对他的效果是微乎其微的
一般网站收到这种攻击服务器就会跟着倒霉. 有的就会直接被商家解约. 然后网站被迫下线之后去别的地方买服务器也买不着. 导致这个网站就消失了. 但是为什么天猫. 淘宝就不会倒闭. 服务器并发流量强大只是原因之一. 另外一个就是有国家撑腰. 可以查到攻击源进而来躲避
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
尝试通过SSL连接到ImgurAPI时出现错误。这是代码和错误:API_URI=URI.parse('https://api.imgur.com')API_PUBLIC_KEY='Client-ID--'ENDPOINTS={:image=>'/3/image',:gallery=>'/3/gallery'}#Public:Uploadanimage##args-Theimagepathfortheimagetoupload#defupload(image_path)http=Net::HTTP.new(API_URI.host)http.use_ssl=truehttp.verify
一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su
如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答
我一直在使用zeroMQ,我希望能够通过Internet安全连接。我在ruby中,可以使用SSL和/或某种shh连接,但找不到有关如何执行此操作的任何示例。我找到了这个旧的stackoverflow链接,HowdoeszeromqworktogetherwithSSL?说他们正在研究某种安全性,但那是一年前的事了,我找不到任何新的引用资料。即使这不是内置在zeroMQ中,我也假设会有一些方法可以使用OpenSSL或类似的东西来设置它。注意:如果您想要安全传输,zeroMQ网站提到使用VPN或其他东西。我不想使用VPN。一定有更好的方法。 最佳答案
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
跳过联网激活:OOBE界面直接按Ctrl+Shift+F3进入审核模式。这样就可以直接进入系统进行一些硬件测试等,而不用联网激活导致新机无法退货。需要注意的是,在审核模式下进行的一些操作都会保留,并不会在退出后自动还原!安装的软件在正常开机进系统后还会看见!如果电脑确实没连互联网又不想强行跳过OOBE(网上很多教程会叫你直接结束OOBE进程,但这是不推荐的,因为一些厂商自带优化程序和系统初始化设置在后面都会应用,对于笔记本跳过的话你会发现驱动和内置应用都没有装上。其实这部分脚本就在系统盘的Recovery隐藏文件夹下),可以参考以下方式:https://www.landiannews.com/
如果有人能提供一些关于在没有互联网连接的计算机上安装rubyonrails3.x框架的见解,我将不胜感激。所有教程或解释似乎都假设始终存在互联网连接。有没有简单的方法来下载包含所有依赖项的包并简单地安装包。提前致谢 最佳答案 最后。您需要手动下载的Gem的完整列表,以便在离线模式下安装Rails(或在阻止您的“gem”命令工作的代理之后)。此列表假定您已经拥有以下内容(Windows7):Ruby1.9.2RubyGems1.8.24DevKit列表。转到rubygems.org并使用搜索功能下载以下每个Gem。您不需要键入
文章目录1简介2绪论2.1课题背景与目的3系统设计详细设计描述3.2硬件部分温度测量电路其他电路部分3.3软件部分主程序子系统程序温湿度程序流程键盘显示子程序3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的智能温控农业大棚系统大家可用于课程设计或毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/1254090522绪论2.1课题背景与目的近年来我国的温室控制取得了长足的进步,首先在温室群控制方面,进行了初步的探索和理论研究,其次在温室
我尝试执行此页面中显示的ruby示例:http://tomayko.com/writings/unicorn-is-unix但我得到的只是echo.rb:9:in`bind':Addressfamilynotsupportedbyprotocolfamily-bind(2)(Errno::EAFNOSUPPORT)fromecho.rb:9:in`'有什么想法吗? 最佳答案 我遇到了同样的问题。只需将localhost更改为0.0.0.0:address=Socket.pack_sockaddr_in(4242,'0.0.0.0')