网络协议
文章平均质量分 88
网络
sysu_lluozh
这个作者很懒,什么都没留下…
展开
-
【网络协议趣谈】RPC协议综述
服务之间的互相调用该怎么实现呢?使用Socket协议,服务之间分调用方和被调用方,建立一个TCP或者UDP的连接,不就可以通信了?仔细想一下,这事儿没这么简单。拿最简单的场景,客户端调用一个加法函数,将两个整数加起来返回它们的和如果放在本地调用,那是简单的不能再简单了,但是一旦变成远程调用,门槛一下子就上去了首先要会Socket编程,然后再看Socket程序设计的书学会几种Socket程序设计的模型,而且搞定了Socket程序设计,才是万里长征的第一步,后面还有很多问题呢一、如何解决这五个问题?原创 2021-08-18 00:26:04 · 423 阅读 · 2 评论 -
【网络协议趣谈】CDN静态和动态数据缓存
当一个用户想访问一个网站时,指定这个网站的域名,DNS就会将这个域名解析为地址,然后用户请求这个地址,返回一个网页。就像要买个东西,首先要查找商店的位置,然后去商店里面找到自己想要的东西,最后拿着东西回家一、优化点那这里面还有没有可以优化的地方呢?例如去电商网站下单买个东西,这个东西一定要从电商总部的中心仓库送过来吗?原来基本是这样的,每一单都是单独配送,所以可能要很久才能收到快递。但是后来电商网站的物流系统在全国各地建立很多仓库,而不是只有总部的中心仓库才可以发货电商网站根据统计大概知道,北京、上原创 2021-08-06 23:42:10 · 2945 阅读 · 2 评论 -
【网络协议趣谈】DNS协议域名解析和负载均衡
现在网站的数目非常多,如果全部用IP地址进行访问,恐怕很难记住。于是,需要一个地址簿,根据名称就可以查看具体的地址例如,要去西湖边的"外婆家饭店",这就是名称,然后通过地址簿查看到底是哪条路多少号一、DNS服务器在网络世界也是这样的,肯定记得住网站的名称,但是很难记住网站的IP地址,因而也需要一个地址簿,就是DNS服务器由此可见,DNS在日常生活中多么重要。每个人上网都需要访问它,但是同时,这对它来讲也是非常大的挑战,一旦它出了故障整个互联网都将瘫痪。另外,上网的人分布在全世界各地,如果大家都去同一原创 2021-08-06 13:15:29 · 2611 阅读 · 2 评论 -
【网络协议趣谈】流媒体协议的编码和传输
最近直播比较火,很多人都喜欢看直播,那一个直播系统里面都有哪些组成部分,都使用了什么协议呢?无论是直播还是点播,其实都是对于视频数据的传输。一提到视频,大家都爱看,但是一提到视频技术,大家都头疼,因为名词实在是太多了一、名词系列1.1 三个名词系列这里列三个名词系列,首先大致有个印象名词系列一:AVI、MPEG、RMVB、MP4、MOV、FLV、WebM、WMV、ASF、MKV例如RMVB和MP4,看着是不是很熟悉?名词系列二:H.261、 H.262、H.263、H.264、H.26原创 2021-08-05 08:42:45 · 668 阅读 · 0 评论 -
【网络协议趣谈】HTTPS协议加密证书和工作模式
用HTTP协议,看个新闻还没有问题,但是换到更加严肃的场景中就存在很多的安全风险。 例如,下单做一次支付,如果还是使用普通的HTTP协议,那很可能会被黑客盯上发送一个请求说要点个外卖,但是这个网络包被截获了,于是在服务器回复你之前,黑客先假装自己就是外卖网站,然后给你回复一个假的消息说:“好啊好啊,来来来,银行卡号、密码拿来”,如果这时候你把银行卡密码发给它,那就真的上套了那怎么解决这个问题呢?当然一般的思路就是加密。加密分为两种方式一种是对称加密,一种是非对称加密在对称加密算法中,加密和解密使用的密原创 2021-08-05 00:04:26 · 358 阅读 · 0 评论 -
【网络协议趣谈】HTTP协议内容和传输
前面讲述完传输层,接下来从最常用的HTTP协议开始讲应用层的协议HTTP协议,几乎是每个人上网用的第一个协议,同时也是很容易被人忽略的协议比如看新闻的163网站http://www.163.comhttp://www.163.com是个URL,叫作统一资源定位符。之所以叫统一,是因为它是有格式的HTTP称为协议,www.163.com是一个域名,表示互联网上的一个位置。有的URL会有更详细的位置标识,例如http://www.163.com/index.html正是因为这个东西是统一的,所以当把这原创 2021-08-03 23:50:07 · 1470 阅读 · 6 评论 -
【网络协议趣谈】基于TCP和UDP的套接字Socket编程
在TCP和UDP协议中主要分客户端和服务端,在写程序的时候也同样这样分Socket这个名字很有意思,可以作插口或者插槽讲。虽然是软件程序,但可以想象为弄一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以在通信之前,双方都要建立一个Socket在建立Socket的时候,应该设置什么参数呢?Socket编程进行的是端到端的通信,往往意识不到中间经过多少局域网,多少路由器,因而能够设置的参数也只能是端到端协议之上网络层和传输层的网络层Socket函数需要指定到底是IPv4还是IPv6,分别对原创 2021-08-02 08:57:20 · 280 阅读 · 2 评论 -
【网络协议趣谈】TCP协议可靠性保证
很多时候都是在公网上传输数据,而公网往往是不可靠的,因而需要很多的机制去保证传输的可靠性,这里面需要恒心,也即各种重传的策略,还需要有智慧,也就是说这里面包含着大量的算法一、如何做个靠谱的人TCP想成为一个成熟稳重的人,成为一个靠谱的人。那一个人怎么样才算靠谱呢?1.1 对于每件事情都有应答工作中经常就有这样的场景,比如交代给下属一个事情以后,下属到底能不能做到,做到什么程度,什么时候能够交付,往往就会有应答有回复。这样,处理事情的过程中一旦有异常,也可以尽快知道,而不是交代完之后就石沉大海,过了原创 2021-08-02 00:16:26 · 1222 阅读 · 0 评论 -
【网络协议趣谈】TCP协议连接和状态
UDP协议像小时候一样简单,相信网之初,性本善,不丢包,不乱序而TCP协议像长大后一样复杂和成熟,认为网络环境是恶劣的,丢包、乱序、重传,拥塞都是常有的事情,因而要从算法层面来保证可靠性一、TCP包头格式先来看TCP头的格式,从下面这个图可以看出它比UDP复杂得多1.1 源端口号和目标端口号首先,源端口号和目标端口号是不可少的,这一点和UDP是一样的。如果没有这两个端口号,数据就不知道应该发给哪个应用1.2 序号接下来是包的序号。那为什么要给包编号呢?不编好号怎么确认哪个应该先来,哪个应该原创 2021-08-01 00:53:32 · 324 阅读 · 0 评论 -
【网络协议趣谈】UDP协议
对于非底层开发或者应用层开发来讲,最常用的就是UDP和TCP协议。这两个协议经常会被放在一起问,接下来两个协议结合学习一、TCP和UDP有哪些区别1.1 TCP面向连接一般问两个协议的区别时,大部分人会回答,TCP是面向连接的,UDP是面向无连接的什么叫面向连接,什么叫无连接呢?在互通之前,面向连接的协议会先建立连接。例如,TCP会三次握手,而UDP不会。那为什么要建立连接呢?TCP三次握手,UDP也可以发三个包玩玩,有什么区别吗?所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据原创 2021-07-31 00:21:01 · 748 阅读 · 0 评论 -
【网络协议趣谈】网络分层的含义
一、四个问题拷问为什么网络要分层呀?因为不同的层次之间有不同的沟通方式,这个叫作协议。例如,一家公司也是分层次的,分总经理、经理、组长、员工。总经理之间有他们的沟通方式,经理和经理之间也有沟通方式,同理组长和员工1.1 协议之间的关系那么第一个问题来了。请问经理在握手的时候,员工在干什么?很多人听过TCP建立连接的三次握手协议,同理类似问题,TCP在进行三次握手的时候,IP层和MAC层对应都有什么操作呢?教科书经常是列出每个层次所包含的协议,然后开始逐层地去讲这些协议,但是这些协议之间的关系呢?1原创 2021-07-30 00:34:24 · 813 阅读 · 0 评论 -
【网络协议趣谈】什么是网络协议
下面是一段经典的Hello World!代码public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); }}这是每一个程序员向计算机世界说"你好,世界"的方式。但是,这段文字也是一种协议,是人类和计算机沟通的协议,只有通过这种协议计算机才知道我们想让它做什么一、协议三要素这种协议还是更接近人类语言,机器并不能直接读懂,需要进行翻译,翻译的原创 2021-07-29 00:24:52 · 409 阅读 · 0 评论 -
【网络协议】mysql协议数据包分析
使用tcpdump抓取应用层mysql协议的数据包,然后使用wireshark工具对mysql协议数据包进行分析一、tcpdump数据包可以通过端口规则或mysql规则抓取对应的mysql数据包,接下来通过端口规则限定抓取mysql的数据包1.1 查看mysql的端口jdbc:mysql://swqa.lluozh.com:3487/lluozh?characterEncoding=UTF-8即显然当前数据库的端口为34871.2 tcpdump数据包根据端口信息抓取对应的数据包tcpdu原创 2021-05-22 01:48:11 · 4943 阅读 · 6 评论 -
【网络协议】tcpdump抓包
一、简介tcpdump根据使用者的定义对网络上的数据包进行截获的包分析工具,用简单的话来定义:dump the traffic on a networktcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句去掉无用的信息tcpdump基于底层libpcap库开发,运行需要root权限二、抓包原理Linux抓包是通过注册一种虚拟的底层网络协议来完成对网络报文(准确的说是网络设备)消息的处理权当网卡原创 2021-05-17 08:48:42 · 3493 阅读 · 4 评论 -
Fiddler的使用
在使用Jmeter写公司产品EasiCare的接口测试时,原本一直使用的是Wireshark,现尝试着使用Fiddler。Fiddler通过在本机开启了一个http的代理服务器来进行http请求和响应转发,可以支持对手机应用进行http抓包的。默认情况下,并不能抓取https的请求,但可进行设置。可以在https://www.telerik.com/download/fiddler或者http://原创 2016-02-14 16:14:44 · 675 阅读 · 0 评论 -
【网络模拟】Network Emulator for Windows Toolkit
公司软件产品EB的采集端在网络状况正常时,可进行视频直播,但在网络较差时会出现卡顿,现使用NEWT(Network Emulator for Windows Toolkit)模拟延时的网络环境下进行直播测试。 NEWT是一个简单实用的网络模拟工具软件。开始是微软内部为搭建网络模拟服务于网络的研究工作而开发,之后开发维护并将NEWT的核心代码先后成功地转移到了微软的产品Xbox XDK,Games原创 2016-01-19 21:52:42 · 28658 阅读 · 48 评论 -
nginx代理端口
和公司IT平台部将一ip设置为域名swqa.codedog.cn ,nodejs 服务端监听的端口为8090,此时得输入url为 swqa.codedog.cn:8090 麻烦而且有些不方便开始想着将程序中监听的8090改为80,这样就可以完美的解决问题,实际却并不是这样的,改为80运行程序后:提示端口被占用且没有权限查找本机的端口占用 netstat -ano netstat -ano查看到原创 2016-11-03 20:36:33 · 5782 阅读 · 0 评论 -
【网络模拟】网络环境模拟搭建
原先使用NEWT在Windows端搭建一套网络仿真的环境,现在搭建一套更加精确的网络控制器网络模拟拓扑图其中,网络控制器需要时一个双网卡的服务器,两个网口eth0和eth1网桥的搭建网桥:工作在网络链路层,可以连接不同局域网的网络设备网络控制器中网桥的搭建: 安装网桥搭建工具bridge-utils: yum install bridge-utils 配置网桥: brctl addbr b原创 2016-08-08 09:21:03 · 11497 阅读 · 0 评论 -
Netty开源库的初步使用
之前用Java socket实现模拟remote客户端进行并发登录,但断线重连、连接超时、网络闪断、网络拥塞和读写超时等实现较为麻烦。现学习使用netty开源库,在netty开源库基础上实现业务功能。 netty是JBOSS针对网络开发的一套应用框架,也是在NIO的基础上发展起来的。netty基于异步的事件驱动,具有高性能、高扩展性等特性,它提供了统一的底层协议接口,使得开发者从底层的网络协议(如原创 2016-01-18 21:05:52 · 3575 阅读 · 0 评论 -
HTTP状态码
HTTP协议状态码表示的意思主要分为五类 ,大体是 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1×× 保留 2×× 表示请求成功地接收 3×× 为完成请求客户需进一步细化请求 4×× 客户错误 5×× 服务器错误 100 Continue指示客户端应该继续请求。回送用于通知客户端转载 2015-10-10 10:55:59 · 411 阅读 · 0 评论 -
简述C/S和B/S模式的区别
C/S模式: 客户端/服务器模式 工作原理: Client向Server提交一个请求;Server则使用一些方法处理这个请求,并将效果返回给ClientB/S结构: Browser/Server(浏览器/服务器)结构,对C/S结构的一种变化或者改进的结构 在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/转载 2015-10-13 14:50:05 · 17289 阅读 · 0 评论 -
IP地址和子网掩码
ip地址:用来上网的 子网掩码: 通过IP 地址的二进制与子网掩码的二进制进行与运算,用来辨别是哪个网段的,确定某个设备的网络地址和主机号每台电脑要连接到网络都要有一个自己的ip,这个ip是独一无二的,每个电脑都是不同的,就好比是你的家庭地址一样,每个人地方的地址都是独一无二的,有了这个IP才可以上网,而子网掩码是用来分清网段的,每个ip都属于不同的网段,有了ip跟子网掩码就可以知道哪个ip地址转载 2015-10-13 14:43:27 · 404 阅读 · 0 评论 -
DNS、活动目录、域
DNS: 域名服务,作用是将网络域名解析成IP地址 活动目录: 微软提供的目录服务的一种,它存储有关网络上的对象信息,并使管理员和用户更方便的查找和使用这类信息 域: 网络系统的一个安全边界,在一个域当中,计算机和用户共享一些列的安全信息转载 2015-10-12 21:18:56 · 1327 阅读 · 0 评论 -
TCP和UDP
OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。UDP UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。ICQ 短消息使转载 2015-10-12 21:50:35 · 281 阅读 · 0 评论 -
理解HTTP协议
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态转载 2015-10-14 13:07:18 · 401 阅读 · 0 评论 -
HTTP请求中如何选择Get和Post方式
在应用中最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet。post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内一、 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据 二、 get传送的转载 2015-10-14 17:09:58 · 498 阅读 · 0 评论