网络传输

计算机网络

萝らか妹 提交于 2019-11-28 21:35:24
关于 TCP 并发连接的几个思考题与试验 TCP 源端口号与目的端口号: 源端口号与目的端口号, 加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接 序号: 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流编号 确认号: 仅当ACK标志位1时有效. 表示期望下一个字节的序号 头部长度: 标识TCP头部有多少个32bit(4字节). 因为4位最大能表示15, 所以TCP头部长度是60字节 保留位: 6位, 必须全为0 6个标志位: URG: 紧急指针是否有效 ACK: 确认序号是否有效 PSH: 接收方应尽快将这个报文段从TCP接收缓冲区中读走 RST: 表示要求对方中心建立连接. 称携带RST标志的TCP报文为复位报文段 SYN: 请求建立连接. 称携带SYN标志的TCP报文为同步报文段 FIN: 表示通知对方本端要关闭连接. 称携带FIN标志的TCP报文为结束报文段 16位窗口大小: 通过窗口大小来达到流量控制 检验和: 由发送端填充, 接收端对TCP报文执行CRC算法以检验TCP报文在传输过程中是否损坏. TCP特点: 基于字节流 --> 边界问题, 粘包问题 面向连接 可靠传输 缓冲传输 全双工 流量控制 --> 窗口机制 选项与填充(选项为4字节整数倍, 否则用0填充) 最常见的可选字段是最长报文大小MSS(Maximum Segment

读书笔记_python网络编程3_(1)

旧城冷巷雨未停 提交于 2019-11-28 20:36:32
0.前言 代码目录: https://github.com/brandon-rhodes/fopnp/tree/m/py3 0.1.网络实验环境:理解客户端与服务器是如何通过网络进行通信的 每台机器通过一个Docker容器实现 0.1.1.调制解调器A和B下面的客户机(h1~h4)表示典型客户端场景,家庭或咖啡店(内部网络,不能访问互联网,如果要连互联网,都通过调制解调器IP进行连接) 0.1.2.调制解调器通过ISP网关连接广域网(主干路由器,负责将数据包发送至与之相连的网络) 0.1.3.example.com及相连机器表示机房配置。没有网络地址转换或伪装,互联网上的各个客户端可随意访问example.com后的三个服务器提供的服务端口 0.1.4.ftp、mail、www服务器运行正确配置的守护进程,Python脚本可以运行在其他机器,并成功连接到上述服务 0.1.5.所有服务器成功安装TLS证书,所有客户机有example.com的签名及安装受信证书,及要求TLS认证的Python脚本可以成功获取认证 0.1.6.可以在网络环境的任意一台机器上连接并运行命令,可对网络中的任意一个点进行数据包追踪,查看客户端和服务端之间的网络数据传输情况 1.客户端、服务器网络编程 1.1.协议栈与库 1.1.1.协议栈:复杂的网络服务建立在简单网络服务的基础上 1.1.2

计算机网络概述

假如想象 提交于 2019-11-28 20:20:01
什么是因特网 以构成因特网的基本硬件和软件组件来描述 处在因特网的边缘部分即连接到因特网上的设备成为主机(host)或端系统(end system) 端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起 最主要的两种分组交换机分别是路由器(router)和链路层交换机(link-layer switch) 端系统通过因特网服务提供商(ISP,Internet service provider)接入网络 端系统,分组交换机及其其他因特网部件都要运行一系列的协议(protocol),而TCP(Transmission control protocol,传输控制协议)/IP(Internet protocol,网际协议)是其中最为主要的两个协议 以为分布式应用提供服务的联网基本设施来描述 端系统提供了一个应用程序编程接口,你可以通过这个接口编写应用程序.运行在不同端系统上的软件需要互相分发数据,而因特网提供给这一系列服务 网络架构 客户服务器模式(Clinet-server model) 客户端,服务器都是主机 请求一方为客户,响应请求一方称为服务器 从双方建立联系的角度看,主动启动通信的是客户,被动等待通信的是服务器 客户端特点 一般只与服务器通信,连接具有间歇性,动态IP,客户端之间不直接通信 服务器特点 一直开启,IP固定

TCP协议

懵懂的女人 提交于 2019-11-28 20:16:20
本文内容如下: 1)TCP协议概念 2)TCP头部结构和字段介绍 3)TCP流量控制 滑动窗口 4)TCP拥塞控制 慢启动、拥塞避免、快重传、快恢复 有关TCP的三次握手四次挥手单独写了一篇博客: 【TCP协议】---TCP三次握手和四次挥手 有关TCP粘包和黏包,也单独写一篇博客,下一篇博客就写有关粘包黏包问题。 一、TCP概念 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。 首先来看看OSI的七层模型 我们需要知道TCP工作在网络OSI的七层模型中的第四层——传输层,IP在第三层——网络层,ARP 在第二层——数据链路层;同时,我们需要简单的知道,数据从 应用层发下来,会在每一层都会加上头部信息,进行 封装,然后再发送到数据接收端。这个基本的流程你需要知道,就是每个数据都会经过数据的封装和解封 装的过程。 在OSI七层模型中,每一层的作用和对应的协议如下: 二、TCP头部结构和字段介绍 从上面图片可以看出,TCP协议是封装在IP数据包中。 下图是TCP报文数据格式。TCP首部如果不计选项和填充字段,它通常是20个字节。 下面分别对其中的字段进行介绍: 源端口和目的端口 各占2个字节,这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接

【计算机网络】面试常问:GET,POST,PUT方法的区别

时光怂恿深爱的人放手 提交于 2019-11-28 20:08:42
我在前面博客: 详解HTTP协议 中讲到HTTP协议的一些方法,但是被面试官问到最多的是get和post方法的区别,虽然很多人都知道,但是并不能让面试官满意,所以我在这里就重点比较获取数据的三种方法:GET,POST,PUT方法的区别 1. get 和 post 方法比较 get和post方法主要有以下五点区别: 安全性:post方法更安全 传输资源的大小:post能传输的资源更大 传输资源的数据类型:post能传输的数据类型更多 应用场景:post用于写入和修改数据,get用于搜索和查询 获取资源的速度:get更快!! 面试官心里最想让你说的一点 下面,我就针对上面分析到的五点,依次介绍一下: post 方法获取资源更安全 GET方法是使用URL传参的,而POST方法是在报文主体中传参,这也就意味着POST在传参时更安全。如下图所示,用GET方法请求时,用户的私人信息会暴露在URL中, 这存在很大隐患。 这里需要注意一点,直接使用HTTP协议发送的数据,是没有经过加密的,也就是说只要是有人想截取到报文,无论get还是post方法并没有区别,所以在HTTP协议中我们应该说post方法更私密,因为它将参数 “ 藏 ” 的更深。 post 方法能传输的资源更大 由于传参的方式不同导致传输资源的大小也不同。get方法请求时由于浏览器对地址长度的限制而导致传输的数据有限制

linux命令 iperf-网络性能测试工具

岁酱吖の 提交于 2019-11-28 20:02:39
iperf命令 是一个网络性能测试工具。iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。iperf可以报告带宽,延迟抖动和数据包丢失。利用iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。 Iperf的主要功能如下: TCP 测量网络带宽 报告MSS/MTU值的大小和观测值 支持TCP窗口值通过套接字缓冲 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接 UDP 客户端可以创建指定带宽的UDP流 测量丢包 测量延迟 支持多播 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows) 其他 在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。 可以指定运行的总时间,甚至可以设置传输的数据总量。 在报告中,为数据选用最合适的单位。 服务器支持多重连接,而不是等待一个单线程测试。 在指定时间间隔重复显示网络带宽,波动和丢包情况。 服务器端可作为后台程序运行。 服务器端可作为Windows 服务运行。 使用典型数据流来测试链接层压缩对于可用带宽的影响。 支持传送指定文件,可以定性和定量测试Iperf使用方法 iperf分为两种版本,Unix/Linux版和Windows版,Unix/Linux版更新比较快

深入浅出 TCP/IP 协议

孤街浪徒 提交于 2019-11-28 18:27:57
深入浅出 TCP/IP 协议 TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是 应用层、传输层、网络层和链路层 ,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是, 一个主机的数据要经过哪些过程才能发送到对方的主机上 。 那我们就来探索一下这个过程: 0、物理介质 物理介质就是把电脑连接起来的物理手段,常见的有光纤、双绞线,以及无线电波,它决定了电信号(0和1)的传输方式,物理介质的不同决定了电信号的传输带宽、速率、传输距离以及抗干扰性等等。 TCP/IP协议栈分为四层,每一层都由特定的协议与对方进行通信,而 协议之间的通信最终都要转化为 0 和 1 的电信号,通过物理介质进行传输才能到达对方的电脑 ,因此物理介质是网络通信的基石。 网络通信就像送快递一样,用户买的商品被一层层包裹就是各种协议,协议描述了商品的大小、收件人、联系方式以及配送地址,而实际的配送交通工具就是物理介质。其次对于一些偏远的地方,快递是不能直达的,需要中途转发,这时候快递上的各种协议就起作用了,它记录了要转发的地址、揽件人信息等

tcp/udp

眉间皱痕 提交于 2019-11-28 16:35:09
DP、TCP、可靠传输的工作原理、TCP首部格式、TCP可靠传输的实现、TCP流量控制、TCP的拥塞控制、TCP的连接管理这几个方面进行解析。 一、运输层协议概述 1.进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当两台主机使用网络的核心部分的功能进行点对点通信的时候,只有位于边缘部分的主机的协议栈才有运输层,而网络核心的路由器在转发的时候只有用到下三层的功能。 image 应用进程之间的通信: 两个主机进行通信实际上就是两个主机中的应用进程互相通信。 应用进程之间的通信又称为端到端的通信。 输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。 “运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。 image 运输层的主要功能: 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。 运输层还要对收到的报文进行差错检测。 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。 两种不同的运输协议: 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等)

【计算机基础】计算机网络

为君一笑 提交于 2019-11-28 14:51:42
一、从输入URL到页面返回的过程 DNS 通过访问的域名找到对应的IP地址; 向服务器发送一个request; 服务器接受到request,进行处理并返回response; 页面下载相关资源(如图片、CSS样式表、JS文件等)并显示response内容。 二、Http与Https 1、HTTP和HTTPS的基本概念 HTTP(HyperText Transfer Protocol,超文本传输协议):是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少; HTTPS(Secure Hypertext Transfer Protocol,安全超文本传输协议):是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 2、HTTP与HTTPS的区别 https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用; http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议; http和https使用的是完全不同的连接方式

计算机网络面试题4

醉酒当歌 提交于 2019-11-28 10:28:51
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我们的普通话的作用。同样,放眼全球,我们与外国友人沟通的标准语言是英语,所以我们才要苦逼的学习英语。   计算机网络协议同我们的语言一样,多种多样。而ARPA公司与1977年到1979年推出了一种名为ARPANET的网络协议受到了广泛的热捧,其中最主要的原因就是它推出了人尽皆知的TCP/IP标准网络协议。目前TCP/IP协议已经成为Internet中的“通用语言”,下图为不同计算机群之间利用TCP/IP进行通信的示意图。 回到顶部 1. 网络层次划分   为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层