传输层

HIT2019秋计算机网络->传输层一些总结

风流意气都作罢 提交于 2019-11-30 18:55:06
1.TCP采用 端到端 的拥塞控制,而不是网络辅助的拥塞控制,原因是IP层不向端系统提供显式的网络拥塞反馈。 2.TCP采用的方法:让 每一个sender根据感知到的网络拥塞程度 限制其能向连接发送流量的速率。 3.关注的问题:   1)一个TCPsender如何限制它向其连接发送流量的速率?   2)一个TCPsender如何感知从它到目的地之间的路径上存在拥塞?   3)当sender感知到端到端的阻塞时,采用何种算法来改变其发送速率? 4.TCP如何进行流量控制?可能存在什么问题?    糊涂窗口综合症: 如果发送端为产生数据很慢的应用程序服务,例如,一次产生一个字节。这个应用程序一次将一个字节的数据写入发送端的 TCP的缓存。如果发送端的 TCP没有特定的指令,它就产生只包括一个字节数据的报文段。结果有很多 41字节的 IP数据报就在互连网中传来传去。    如果接收端为消耗数据很慢的应用程序服务,例如,一次消耗一个字节。假定发送应用程序产生了 1000字节的数据块,但接收应用程序每次只吸收 1字节的数据。再假定接收端的 TCP的输入缓存为 4000字节。发送端先发送第一个 4000字节的数据。接收端将它存储在其缓存中。现在缓存满了。它通知窗口大小为零,这表示发送端必须停止发送数据。接收应用程序从接收端的 TCP的输入缓存中读取第一个字节的数据。在入缓存中现在有了

OSI七层模型

你离开我真会死。 提交于 2019-11-30 18:10:19
OSI七层模型介绍 : OSI参考模型其实就是讨论通信问题,所不同其针对的是计算机通过网线或无线网去通信。为了容易理解,首先用一个例子来形容: 我写一封信给朋友,首先,是我写信,讲往事如风,说我们两个人之间的老故事,这些东西只要我两之间懂就OK了。好写完后,我就寄信去了。。具体的寄信跑腿等工作,则属于下一层了。那么下一层是谁呢?对,邮政局。邮政局把信纸装进固定格式的信封中,信封上有固定格式的要求。那么邮政局不需要知道信到底写了什么,他们不关心,只管捯饬信封就可以,让对方拿到信封后知道那是给我朋友的就OK了。好,这个层次结束。。那么是不是没其他层次了呢??错,还有一个层次,那就是最底层。邮递员层。。他们负责跑腿,例如骑马,骑车或者开火车开飞机,随便,反正是具体的跑腿工作。。。好,回过头来看,写一封信进行通信,分了三个层次:我和朋友,属于用户层,负责信内容的书写和阅读;邮政局,属于类似于OSI的运输层,负责信封的格式书写和阅读。。邮递员,最底层,类似于OSI的物理层,负责具体的传输方式。 好,回到OSI,这个以计算机为原始设备的通信模型,考虑的要复杂一些而已,分成了7个层次。最底层,物理层:负责具体的传输媒介以及其对应的传输方式,解决的问题是实现比特流的传输。数据链路层:负责相邻两个节点间比特流的识别,即以字节为单位去找出“每页信纸”。网络层:实现网络中任意两个节点间的连通和数据转发。

pytho——OSI七层模型

旧巷老猫 提交于 2019-11-30 18:04:12
OSI七层模型图 从图中我们已经了解到OSI七层分为:物理层;数据连接层;网络层;传输层;会话层;表示层;应用层。 OSI七层各层的讲解: 1.物理层: 在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 设备:网卡,网线,集线器,中继器,调制解调器 2.数据链路层: 数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。 该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

osi七层

倾然丶 夕夏残阳落幕 提交于 2019-11-30 17:57:16
一、OSI参考模型 1、OSI的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。 ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。 2、OSI七层模型的划分 OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图。 每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。 3、各层功能定义 这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。后面我也会根据个人方向展开部分层的深入学习。这里我们就大概了解一下。我们从最顶层——应用层 开始介绍。 整个过程以公司A和公司B的一次商业报价单发送为例子进行讲解。 <1> 应用层 OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

TCP、UDP和HTTP关系

允我心安 提交于 2019-11-30 14:39:39
1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。 TCP 是基于 TCP 协议实现的网络文本协议,属于传输层。 UDP 是和TCP 对等的,属于传输层,UDP 和 TCP 有重要的区别。 2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。 HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。 另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求

面试中必备的网络相关知识

北慕城南 提交于 2019-11-30 12:28:43
废话不说,直接上干货。 1.协议的概念和作用 为了能让计算机之间能够通信,计算机需要定义通信规则,这些规则就是协议。规则有多种,协议也有多种。协议就是数据封装格式+传输。 2.OSI七层模型 应用层:提供网络服务和最终用户软件之间的接口服务。 表示层:数据的表示、安全、压缩。 会话层:建立、管理、中止会话。 传输层:定义传输数据的协议端口号,以及流控和差错校验。 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。 数据链路层:建立逻辑连接、进行硬件地址寻址、差错检验等功能。 物理层:网线、同轴电缆等。 3.TCP/IP参考模型 常用的协议: TCP/IP协议被称为传输控制协议/互联网协议,又称网络通讯协议,是由网络层的IP协议和传输层的TCP协议组成的,是一个很大的协议集合。 物理层和数据链路层没有定义任何特定协议,支持所有的标准和专用的协议。 网络层定义了网络互连,也就是IP协议: (1) 网际协议(IP):负责主机和网络之间寻址和路由数据包。 (2) 地址解析协议(ARP):获得同一物理网络中的硬件主机MAC地址。 (3) 网际控制消息协议(ICMP):发送消息,并报告有关数据包的传送错误。 (4) 互联网管理协议(IGMP):IP主机向本地多路广播路由器报告主机组成员。 传输层定义了TCP(传输控制协议)和UDP(用户数据报协议)。 应用层定义了HTTP(超文本传输协议)

网络协议及osi模型

自作多情 提交于 2019-11-30 10:18:09
osi模型:由高到底 应用层:最高一层,是用户与网络的接口 表示层: 会话层: 传输层:作用是为上层协议提供端到端的可靠和透明的数据传输服务 网络层: 数据链路层: 物理层:它利用传输介质为数据链路层提供物理连接 前三层表示高层:负责主句之间的数据传输 中二层中层:负责网络传输 后二层:负责介质传输 OSI 整个模型层次大致可以分为3个主要层面来看 |.............主机...............| 操作系统和软件等 应用、表示、会话 |.............网络...............| 互联网络和相关协议 传输、网络 (TCP/IP) |.............介质...............| 物理介质相关 数据链路、物理 相关协议: tcp与udp协议是传输层协议,主要是在传输数据上面,ip是网络层协议,TCP和UDP使用Ip协议从一个网络传送数据包到另一个网络。可以理解ip协议为高速公路,那么tcp与udp就是卡车,负责运输网络数据, 传输层传送的协议数据单元称为段或报文 。但是这‘二车’还是有区别的 TCP:传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。tcp传输一般有三次握手,连接上才可以传输。 http以及https,ftp,telnet、ssh

Dubbo的学习笔记

左心房为你撑大大i 提交于 2019-11-30 05:31:47
Dubbo笔记 ## 初步认为Dubbo是一个分布式调用其他服务的框架,在没有使用dubbo框架的时候,我们调用其他网站的接口时需要使用http发送一个请求到指定的服务接口上。而dubbo的主要功能就是将其他网站的服务透明化,即可以像调用一个本地方法一样调用远程服务。 通过资料得知Dubbo是基于RPC框架,RPC框架带来的几个问题,关于RPC的具体内容可以参考这篇https://www.jianshu.com/p/b0343bfd216e 1. Call ID映射 我们需要调用一个方法,在本地环境中方法可以通过指针来指定,而在远程方法调用时,两台机器的进程寻址地址是不同的。所以在RPC框架中,每个方法都有一个ID,这个ID在进程中都是唯一确定的。客户端在调用远程方法时需要带上ID。然后我们还需要在客户端和服务端分别维护一个 {函数 <--> Call ID} 的对应表。两者的表不一定需要完全相同,但相同的方法对应的Call ID必须相同。当客户端需要进行远程调用时,它就查一下这个表,找出相应的Call ID,然后把它传给服务端,服务端也通过查表,来确定客户端需要调用的方法,然后执行相应方法的代码 2. 序列化和反序列化 客户端怎么把参数值传给远程的方法呢?在本地调用中,我们只需要把参数压到栈里,然后让函数自己去栈里读就行。但是在远程过程调用时,客户端跟服务端是不同的进程

TCP/IP协议学习——传输层的TCP协议

匆匆过客 提交于 2019-11-30 03:26:00
IP协议是通过IP地址来进行定位寻址的,IP地址用来确定要将数据发送给那一台主机;而TCP与UDP协议中则是通过主机端口号来进行确定在主机上的那个应用程序来收发数据。 1. TCP协议提供的服务 1. TCP与UDP都基于网络层的IP协议,但是为应用层提供了完全不同的服务。 TCP提供了面向连接的、可靠的字节流服务 。面向连接表示在客户端与服务端的两个使用TCP协议的应用程序之间需要首先建立起一个TCP连接,然后才能进行交互数据,而且TCP中也只能进行两个主机之间的通信,无法实现多播和广播。 2. TCP协议保证数据传输可靠性的方式: (1)应用层传来的数据将被TCP协议分割为合适长度的数据块,这个传递给网络层IP协议处理的数据块被称为报文段。 (2)当TCP发出一个报文段,就会启动一个定时器,等待目的端确认接收该报文段,如果无法在定时器结束前接收确认消息,就会重发报文段。 (3)当一段的TCP收到另一端发送的数据时,就会响应一个确认消息。 (4)TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段并且不确认收到此报文段(希望发端超时并重发)。 (5)既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要

测试工程师真的不需要懂网络知识么?

↘锁芯ラ 提交于 2019-11-30 02:34:57
导语:随着现在互联网公司的普及,越来越多的测试工程师从事web应用测试和移动APP测试类的产品,更加偏向应用,所以导致越来越多的测试工程师对网络基础知道的甚少。我曾经做过一个小调查,大概200多个测试从业者中只有不到20人知道如IP协议和路由协议这样的基础网络知识,这样的现象一点都不夸张。那么不懂网络知识,测试工程师真的能走得很远么? 我是在2010年左右进入测试行业的,那个时候互联网行业还没有现在这么繁荣,需要测试岗位的公司很多都是一些传统公司,比如路由交换设备厂商:思科,华为,华三等;防火墙VPN的安全厂商:如Juniper,深信服,360等;还有一系列外企:如IBM,Oracle,F5等。这些公司的测试工程师,对于网络基础知识的要求相对比较高,不仅在笔试面试中会作为招聘的门槛,而且在具体测试工作开展过程中,也需要实施和使用到。 我在北京就职的其中一家公司就是SSL VPN的一家外企,所有测试工作中很重要的一个部分就是需要自己准备测试环境,也就是要根据需求自己设计出来对应的测试网络拓扑图,然后协调到资源之后,在实验室把这个网络搭建并且调通。这个过程如果没有丰富的网络知识储备,你就可能会被block在网络环境准备阶段,无法真正的开始执行测试用例,因为没有环境的承载,测试软件根本无法运行。当然,可能在你作为一个新人的时候,能够去请求别的同事的支援,协助你配置网络和准备测试环境