Network Connectivity

1. Important terminologies

1) Link 设备连接的连线。Link本身既可以是有线的,也可以是无线的。

2) Node 设备。电脑,笔记本电脑,手机都可以是Node。

3) Point-to-point 连接的设备只有两个。

4) Multiple access 连接的设备两个以上。多个设备同时去存取的这样一个Link。

5) Switched Network

-> Circuit Switched 通讯之前线路必须建立起来。有实实在在的实体线路,线路可能经过多个交换机,将双方连接起来    

-> Packet Switched 传送资料时,将资料分割成一个个packge(封包),将每一个封包丢到网络中去进行switch,也就是说,资料进行交换的单位是packet。

6) Message 原始的资料。比较大,比较长。

Packet 是 message 经过分割后的单元。如果将太大太长的资料直接丢到网络中去的话,网络可能无法处理。

7) Store-and-forward

网络的设备在处理packge时,通常将其先收起来(store),收起来之后再看看这个packge到底要送给谁(我们在网络上收到packge时,一定要看看这个packge到底要送给谁,注意,资料上会有这个packge是谁送的以及送给谁的信息),因此我们需要去查表(这个表在router或者switcher里都会有),查表之后我们就会知道这个封包如果要送到某个destination的话,需要从哪个port出去。总结下,就是,先将封包(packge)store,然后查表得知从哪个port出去,再将封包(packge)转出去(forward)。每一个封包进来,网络设备(如路由器)的处理都是:收-查-转。

交换机与路由器的端口(port)通常很多,有的十来个,有的二十多个,有的甚至100多个。如果一下子有很多封包进来的话,实际上对设备存在着很大的考验。封包是存放在设备的memory里,如果封包进来的速度很快,会不会因为memory不够大导致来不及存储从而导致封包loss;还有,封包进来的速度很快,但是由port转出去的速度较慢(port有自己的传送速率,比如以太网一般稍快,无线较慢)也会导师封包loss(从快速的Link上收到大量的封包,当这些封包想要转到慢速的网络上去时,会出现问题。也就是进来的封包量太大,来不及消化,那么必须queue起来,放在所谓的buffer里(记忆体里),但是如果进来的还是太快,消化的还是太慢,那么queue就会爆掉,封包无法完全保留,就会开始掉封包)

8) Hosts 主机。

9) Switches

交换机。一般来说,交换机是layer2的设备。但是也会有layer3,layer4的交换机。网络上一般会有很多交换机,我们通常将其接成有回路的状态,因为在网络运作时,回路可以增加网络的可靠性。例如,网络上某一个link断掉,或者某一个交换机荡掉,此时,我们并不希望网络因此就被断掉或隔离开来。

但是,回路本身在package传送时,也会造成两个问题。一是,因为有回路,我们的package可能在网络上绕好几圈,甚至可能会收到好几次。第二个是,package在传输时,会做address learning,学习host到底在什么地方,如果有回路的话,会让address learning错误,这个以后再讲。

10) Spanning tree

为了让网络在运作时,暂时先不要有回路,网络会先建构成一个Spanning tree的结构。下图中红色的link部分就是一个Spanning tree。 

图1 A switched network

在一个树状结构中,任意两个Node之间都有唯一的路径。这个路径就是我们package走的路径。因此Spanning tree本身就提供了我们routing的路径。

图1,是一个switched network,我们是用交换机将很多主机连接起来的。这样一个网络我们还是称其为区域网络,因为它是局限在一个比较小的区域内的。而我们整个Internet是非常大的,我们需要将全世界都连接起来。

11) internetwork

如果将很多网络连接起来,就是所谓的internetwork,互联网。也就是将许多网络再连接起来,其中每一个网络都是图1那样的网络。

12) Router/gateway

将网络连接起来的设备就是router或者gateway。

图2 Interconnection of networks

用router将许多网络连接起来的就是internetwork,在我们的现实世界中,就是Internet。

13) Host-to-host connectivity

将两个可能在非常远的地方的host,用网络连接起来。它们中间的连接就是所谓的host-to-host connectivity。

14) Address

每一台电脑或者每一个网卡,都必须有一个位置,我们称之为address。因为只要这样我们才能知道它到底是谁,它在哪。

网卡的address 叫作 mac address。

主机的address 叫作 IP address。

15) Routing

在Internet上,我们怎样找到一条路径,将我的package送给对方。

16) Unicast/broadcast/multicast

送出去的package分为Unicast/broadcast/multicast。

Unicast指package只给特定的对象。

multicast指package丢给多个对象。

broadcast指package丢给所有对象。broadcast一般只在一个区域网络中形成。router一般会把broadcast挡掉,不然你一个broadcast,要把全世界都瘫痪掉了。

17) LAN (Local Area Networks)

18) MAN (Metropolitan Area Networks)

19) WAN (Wide Area Networks)

2. How datagrams are delivered in an Internet ?

Datagram资料包,又称数据包、数据报、数据电报、数据段,在封包交换网络(package switched network )中的最小传输资料单元。

RFC_1594对资料包的定义如下:一个自我完备的独立资料实体,携带着足够的资讯,它能够从源头,选取路径,最终到达目的电脑,而不用依赖起始电脑、目的电脑以及传输网络预先交换的资讯。(摘自wikipedia)

图3 How datagrams are delivered in an Internet ?

网络的状态随时在改变,一次封包传送的路径并不是固定的。router之间可以进行信息的交换,这样就可以知道哪边快一点,哪边拥塞等等。

router有将大封包分割成小封包的能力。为什么要分割成小封包呢?因为每一个网络都有一个封包上限值,对于不同的网络其值是不同的。例如对于以太网,封包上限值为1518个byte,而无线网络是2312个byte。如果我们的封包比较大,要进入一个网络时,发现大封包进不去,那就只好将其切成小封包。

切成小封包的做法是将其内容切成小片段,而对于切割后的每个小片段还是要将其包成封包的样子。举例来说,假设你要寄一封信,但是信件内容过多超重了,那么我们自然会将信件分成多封寄出去。但是对于信件的分割来说,我们只是将其内容进行分割,分割后的每一封信仍然需要有完整的信封。当然每一封信件不能超重啦(对于封包来说,就是不能超过要传送的网络的封包上限值)。此后,经分割后的每一封信件,都可以由不同的邮差经过不同的路线,送达给目的地(对于分割后的封包来说,可以由不同的路线送达destination)。

先送的封包,可能在Internet上绕来绕去,反而较晚到达destination;而后送的封包,可能选择了一条没有阻塞的路径,很快就到达了destination。因此先送未必先到。

更严重的是,可能封包在Internet中绕来绕去,最终却绕不出去。比如,网络一会再这边塞,一会在那边塞,就有可能发生这种情况。因此我们有这样一种机制:任何一个封包在网络上绕的时候,每经过一个router(注意:绕来绕去都是靠router),封包本身有一个数字会减1,当减到0时,就将该封包扔掉。因此Internet本身是unrelible的,你丢给它一个封包,它只是尽可能帮我们送达给对方,不排除封包会掉的可能。

封包会掉的一种原因就是上面所提的,封包在网络中绕太久绕不出去,router被丢掉。甚至更简单的原因可以是,一个router连接两个速度不用的网络,比如一个是lan,速度较快,一个是wan,速度较慢。那么如果从lan送进router的封包量比较大,而从router出去的速度又比较慢,那封包一定会暂时存储起来,因为来不及送出去。那么如果存起来的时间太久,或者是说进来的流量太大都不成比例了,那么router最后会留不住封包,因为router内存会满,那么就会把封包drop掉。因此Internet本身是不可靠的,它是尽可能(best effort)帮我们传送,但是万一封包被网络所丢掉,那么所谓的unreliable就意味着封包丢掉就是丢掉了。到目前为止,我们的Internet都是这样的。

如果我们要传送的封包很重要,就要自己想办法保证送到。而TCP是可以做到的(reliable),这个后面再讲。

3. Cost-Effective Resource Sharing(网络上的资源如何做有效的共享?)

1) Resource: links and nodes

图4 Multiplexing multiple logical flows over a single physical link

图4中,交换机之间的绿色的link就属于需要共享的resource,而router和switch也属于nodes,也属于resource。

2) How to share a link ?

a) Multiplexing

多路复用(Multiplexing,又称“多工”)是一个通信计算机网络领域的专业术语,在没有歧义的情况下,“多路复用”也可被称为“复用”。多路复用通常表示在一个信道传输多路信号数据流的过程和技术。(摘自wiki) 

FDM: Frequency Division Multiplexing(频分复用)

例如此图,将频宽分成4份,也就是有4个频道,每个频道的频宽只有原来的1/4,但是这4个用户可以同时传送封包,只是速度慢些而已。每个用户都有专用的频道。我们将frequency分割(devide)了,因此称为频分

Synchronous Time-division Multiplexing (TDM 时分复用)

将时间进行devide,不同的user在不同的时段传送封包(此处,每个时段user用的都是整个link的频宽)。

注意:无论FDM还是TDM都是Multiplexing的技术,但是其最大的问题就是:万一负载不平衡,比如有些用户想送的资料很多,而有些用户想送的很少,甚至没有,即使这样,频道或者时段也是不可以借用的(开始分配好,就固定下来了),因此效率还是比较差的。

那有没有技术,使得传的少的能借资源给传的多的呢?请看Statistical Multiplexing。

b) De-multiplexing Multiplexing的逆过程

c) Statistical Multiplexing(统计多工)

还是这张图,多个station共用中间那条用绿色粗线标记的Link。

-> Data is transmitted based on demand of each flow.

-> What is a flow?

flow,即为流量。其定义并不是固定的。flow可以是两个host之间所有的流量,也可是仅仅是两个应用比如skype之间的流量

-> FIFO, Round-Robin, Priorities (Quality-of-Service (QoS))

这些机制被交换机所运用。

FIFO:先进先出。每个host都有封包进来,先进的封包先出去,用的是link的所有频宽。当大家负载都差不多大的时候,大家所使用的资源是平均的。当有些用户负载较小时,当其送完,那么频宽就可以都给负载大的用户使用了,是相对公平的做法。

Round-Robin:每个用户的封包进入交换机后,都有一个queue。每个queue轮流送封包出去。公平。

Priorities:还可以为queue设立优先级,优先级高的先送。例如,视讯会议此类需要先送封包,保证了QoS的服务。而FDM,TDM此类是不会管这个的。

-> Congested ?(拥塞?)

肯定会掉封包,但是掉哪个,会有具体的策略,以后再说。

4. Logical Channels

两个host之间建立连线,属于Logical Channels,因为不会有实实在在的物理连线,而且封包传送时一般走的也是不同的path。

5. Network Reliability

Network should hide the errors.

1) Bits are lost

-> Bit errors (1 to a 0, and vice versa)

-> Burst errors – several consecutive errors

我们的资料在传送时,是一个bit一个bit传送的,而我们传送bit的link一般为同轴电缆,光纤或者无线。同轴电缆用电压高低表示0和1,容易受电场干扰,发生错误;光纤用光的亮度强弱表示0和1;而无线用电磁波强弱表示0和1,容易受电磁波干扰,发生错误。

2) Packets are lost (Congestion)

3) Links and Node failures

link可能会断,node,例如router,如果停电或者设备故障,会荡掉

4) Messages are delayed

封包在网络中绕来绕去,本身就delay了

5) Messages are delivered out-of-order

封包在网络中绕来绕去,送达的顺序可能不一致,会有先送后到或者后送先到的情况发生。

6) Third parties eavesdrop

我们的封包都是遵循 Store-and-forward 的机制,也就是说要先store,只要是存在记忆体中,就有可能被第三方所篡改。

Network Architecture

1. Example of a layered network system

我们先来看一个例子,将网络结构较为简单的、粗糙的分为4层,如下图:

最下面的是Hardware,也就是所谓的硬体层,一般是网络设备或者连线的设备,有link、网卡、理由器等等,我们将下面的整个网络都简化到一个所谓的Hardware。

在Hardware上面的一层是Host-to-Host Connectivity。由于我们网络的目的是能够让两端的主机能够连接,那我们在Hardware的上一层就可以想象成,我们有两个主机要连接起来做通讯,因此叫Host-to-Host Connectivity,表示两台主机之间可以做通讯。

而我们的主机上同时又会run很多应用,每一个应用可能会建好几个connection,变成process与process之间的通讯。因此Host-to-Host Connectivity的上一层是Process-to-process Channels.

而最上面的才是所谓的Application Programs.

2.  Protocols

在分层的概念下,一个很重要的元素或者一种很重要的机制就是Protocols,协议(或者叫作通讯的协定)。

那么为什么需要Protocol呢?这是因为我们的网络,是将很多不同的主机或者设备连结起来,那么当我的资料送给对方时,他要如何才能看得懂我送的资料?换句话说,我们要让主机与主机之间能够沟通,沟通就是要把封包扔给对方,那你封包扔给对方,对方为什么能看得懂?因此我们之间封包的格式需要一致。不仅仅是格式一致,封包通讯的流程也要正确,比如你丢给我第一个封包,我看到之后要回你什么封包,你看到我回的封包后要再回我什么封包。因此我们必须要制定Protocol,即双方通信的协议。大家都遵守这个协议的话,才可以通讯。如果你没有遵循这个协议的话,我送给你的资料你可能会看不懂,或者解读错误。

1) Protocol defines the interfaces between

-> the layers in the same system and with

-> the layers of peer system

2) Protocols are building blocks of a network architecture

3) Each protocol object has two different interfaces

-> Service interface: operations on this protocol

-> Peer-to-peer interface: messages exchanged with peer

4) Protocol Specification (协议规格)

pseudo-code(伪代码)

state transition diagram(状态转换图)

message format(信息格式)

注意:即使有明确的协议规格,各个公司或者工程师将其实现时(写成程序),通常也是不同的。当两个或多个实现能够互通时,我们称之为 Interoperable。

5) Interoperable

when two or more protocols that implement the specification accurately

6) IETF: Internet Engineering Task Force

Define Internet standard protocols

协议太多,我们需要有专门的组织来制定标准

3. Protocol Architecture

4. Encapsulation

5. OSI Architecture

将网络功能分成7层。

Physical Layer(实体层)

两台主机之间如何传送资料给对方?通过有线或者无线的媒介,如同轴电缆、光纤等。因此Physical Layer主要讨论的是如何将讯号(二进制)送给对方。

Data Link Layer(数据链路层)

将资料送到destination通常会经过很多网络,Data Link Layer 讨论的是如何将资料(frame)往前送一步(可以是同一个区域网络中的目的host,可以是交换机,也可以是router),例如,中间有很多router,每送给一个router,就会依靠Data Link Layer。

需要注意的是,如果同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。因此我们需要一种方法,根据目的主机的IP地址,来获得其MAC地址。这就是ARP协议要做的事情。

所谓地址解析(address resolution)就是主机在发送帧(frame)前将目标IP地址转换成目标MAC地址的过程。 另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。(摘自wiki)

注意:ARP是网络层的协议,但工作在数据链路层。

Network Layer(网络层)

讨论如何将一个封包(package)送给对方,即送到最远的那个destination,比 Data Link Layer 更远。Data Link Layer 是送一段,而 Network Layer 是送整条路线。

注意:通常,我们的host在接到router之前,中间可能会接触到我们的区域网络(lan),就以下图的Ethernet为例来说,

我们真正的连接是:主机接交换机,交换机接交换机,最后才是交换机接路由器。通常,Switch(这边指Layer 2 的 Switch)只处理 Data Link Layer 的 Protocol,而 Router 和 Host 都是处理 IP 的。而 Switch 根本不处理 IP ,或者说不处理 Network Layer 的 header 。当 package 往下送的时候,每一个 Ptotocol 为了与对方(Peer)沟通,必须将自己与对方沟通的资料添加在 Package 的 Header 里。(注意:Switch 根本不会处理 Network Layer 的 Protocol 的 Header,在此处,Switch 只会去处理我们图中的 Ethernet 的 Protocol 的 Header)

Switch 处理的是 Data Link Layer 的 Header,也就是说会去查看 mac address,也就是网卡的地址(主机接到交换机一定有一个网络口,里面会有一个网卡,现在的笔电一般网卡都是内置的),根据 mac address 就会知道 package 发往哪边。mac address 是网卡对网卡,而 IP 是主机对主机。

Transport Layer(传输层)

每一台主机会run很多不同的应用,比如browser,skype,online game,档案传输等等,每个应用本身在使用网络时会有不同的需求。例如,在做档案传输时,那网络一定要非常可靠(因为档案的内容不容有错);如果在看一个vedio(such as YouTube),YouTube的这个封包在传送时,如果稍微有点错,我们是可以忍受的,因为人的听觉和视觉没有灵敏到一点点错就可以察觉。

Transport Layer 就是负责将资料传送给对方,既可以是可靠的,也可是不可靠的。

6. Description of Layers

1. Physical Layer (如何将原始资料在 link 上传输)

-> Handles the transmission of raw bits over a communication link

a)Coaxial cable(同轴电缆)
b)Twisted pair (双绞线)
c)Optical Fiber (光纤)
d)Air space (wireless radio channel)

-> Different Signal Coding schemes

此处的 Coding 是指如何将bit(0或者1)在 Link 上呈现出来。铜线可以使用高低电位,光纤可以使用光的明暗。下图所示的就是电位。

用高低电位来分别表示1和0,就是一种 Coding 。但是实际上也没有我们想象的这么简单,如果一段很长的资料传过来,上面都是1,那么通通都是高电位,看起来就是一条直线。那么接收方看到的就是高电位拉上来的一条线,根本无法知道有多少个bit传送过来了。

因此每个电位还拥有一个 bit time 的属性,也就是图中电位的宽度。发送方在传送资料时,不仅要把0,1用高低电位表示出来,同时还得把自己发送的clock 隐藏在传送的信息中,接收方会抓出这个 clock ,之后根据这个 clock 用相同的速度来读取资料。之所以要把发送方要将自己的 clock 传送给对方,是因为每台电脑都有自己的clock(石英振荡器),各自石英振荡器的 clock 虽然很准,但是仍然会有误差,而这个误差是会累积的。因此,绝对不可以你用你的 clock 发送,我用我的 clock 接收。接收方必须把发送方的 clock 解读出来。(注释:也就是不能仅仅规定一个高电位或者低电位的 bit time 是多少,因为两边的 clock 解读同一个时间长度是会有误差的。也就是说,不仅要确定一个电位的时间宽度,还得确定以什么速度去接收,两边必须一致。clock 实际上代表了速度)

2. Data Link Layer (如何将 frame 传给直接相连的主机或设备)

-> Collects a stream of bits into a frame

-> How to transmit a frame to a directly connected host (destination) ?

-> MAC (Media Access Control Protocol)

CSMA/CD (IEEE 802.3 Ethernet)
CSMA/CA (IEEE 802.11 Wireless LAN)

-> Layer 2 devices

Switches
Bridges

3. Network Layer (如何将封包透过Internet 送给目的地主机)

-> Handles routing among nodes within a packet-switched network

-> Data exchanged between nodes in this layer is called a packet

-> IP protocol

-> Routers

Routers之间会交流网络连接的情况。

-> Routing protocols(动态选择路径而设计的 protocol )

RIP(各个 Router 之间的情报每30秒交换一次)
OSPF(找最短路径)
BGP

-> Routing Tables

4. Transport Layer (提供不同主机 processes(应用程序)之间的资料传送)

-> Implements a process-to-process channel

-> Unit of data exchanges in this layer is called a message

-> TCP (Transmission Control Protocol) – Reliable service

-> UDP (User Datagram Protocol) – Unreliable service

5. Session Layer

Provides a name space that is used to tie together the potentially different transport streams that are part of a single application

有时,两个 process 在沟通的过程之中,会产生不同的 transport stream ,例如可能会建许多 TCP 连线,例如p2p,一个 peer 可能同时会跟几十个 peer 进行沟通,就会建很多连线,这么多连线我们可以将其统称为 Session。Session相当于把不同的 transport stream 整理在一起。

6. Presentation Layer

Concerned about the format of data exchanged between peers

如何呈现资料的格式。两边交换资料,需要用什么格式,例如中文可以用big5,也就是需要将资料呈现的方式定一个标准(如何做一个Present)。

7. Application Layer

-> Standardize common type of exchanges

-> FTP/E-mail/DNS/HTTP/Browsers/FB, ….

7. Internet Architecture

In order for a new protocol to be officially included in the architecture, there needs to be both a protocol specification and at least one (and preferably two) representative implementations of the specification.

Network Performance

1. Bandwidth

1. Width of the frequency band
2. Number of bits per second that can be transmitted over a communication link

-> 1 Mbps: 1 x 106 bits/second

-> 1 x 10-6 seconds to transmit each bit or imagine that a timeline, now each bit occupies 1 micro second space.

-> On a 2 Mbps link the width is 0.5 micro second.

-> Smaller the width more will be transmission per unit time.

小结:速度越快,每一个bit的宽度就越窄。参看下图:

2. Latency = Propagation time + transmission time + queuing time

Propagation time = distance/speed of light

Transmission time = size/bandwidth   (资料的总大小除以频宽)

注意以下两点:

1. One bit transmission => propagation is important (短资料很快就送完, 但需要长时间才能传到对方, 资料已送完,​​ 但前导资料还未到达对方)
Propagation time >> transmission time

2. Large bytes transmission => bandwidth is important (长资料很慢才能送完, 未送完前, 前导资料已到对方)
Transmission time >> propagation time

3. Delay * Bandwidth

The channel between a pair of processes can be viewed as a pipe

Latency (delay): length of the pipe

此处,Latency 指的是 Propagation time,即一端到另一端传输的时间。

Bandwidth: width of the pipe

此处,Bandwidth 就是频宽,显然频宽决定了 Transmission time

所以此时问题又回到了我们之前所说的 Propagation time 与 Transmission time 谁更重要?!

-> Relative importance of bandwidth and latency depends on application

For large file transfer, bandwidth is critical

For small messages (HTTP, NFS, etc.), latency is critical

Variance in latency (jitter) can also affect some applications (e.g., audio/video conferencing)

Delay * Bandwidth means how many data can be stored in the pipe

举例来说,delay of 80 ms and bandwidth of 100 Mbps,则有:

-> 80 x 10-3 seconds x 100 x 106 bits/second
-> 8 x 106 bits = 8 M bits = 1 MB data.

如果,sender 想令这个 pipe 为 full 的话,那么在资料的第一个bit到达 receiver 之前,需要发送 Delay * Bandwidth 个 bit 的资料量。当 sender 发出的资料的第一个bit到达 receiver 后,receiver 方还需花费一整个 Delay 的时间才能将标记收到的信息发送给 sender(sender stops to wait for a signal)。

因此, 发送方在停下来等对方回应之前应该要传送 delay * bandwidth的资料量,也就是将 pipe 填满,才能充分的利用网络。

Introduction to Computer Networks(网络架构与七层参考模式)的更多相关文章

  1. 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

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

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  3. (转载)OSI七层参考模型和TCP/IP四层参考模型

    Mallory   网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互 ...

  4. 老斜两宗事-七层代理模式还是IP层VPN

    1.七层代理模式还是IP层VPN 非常多人会问,我究竟是使用代理模式呢,还是使用VPN模式,假设我想数据在中间不安全的链路上实现加密保护的话.这个问题有一个背景.那就是,你想保护你的数据,能够使用VP ...

  5. 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...

  6. python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01

    面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...

  7. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  8. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  9. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

随机推荐

  1. Oracle 11g r2 x64 中文乱码解决方案

    1.检查服务器编码: 执行SQL语法: select * from v$nls_parameters; 2.设置本地客户端编码: 进入 我的电脑,属性,高级,环境变量,添加2项:LANG=zh_CN. ...

  2. Powerdesigner自定义DBMS(以derby数据库为例)

    Powerdesigner自定义DBMS Powerdesigner以下简称PD.PD默认支持的DBMS不够用时,我们就需要自己定义了.以apache derby数据库为例.1.DBMS的定义文件PD ...

  3. sublime Text 3实用功能和常用快捷键收集

    下面是我通过网上视频教程或文本资料学习sublime Text3时收集的一些实用功能和常用快捷键,现在分享出来,如果还有其它的好用的功能可以在下面留言,以便互相学习. PS:ST3在Mac OX与Wi ...

  4. WinAPI【远程注入】三种注入方案【转】

    来源:http://www.cnblogs.com/okwary/archive/2008/12/20/1358788.html 导言: 我 们在Code project(www.codeprojec ...

  5. Mysql limit offset

    Mysql limit offset 假设数据库表student存在13条数据. 语句1:select * from student limit 9,4 语句2:slect * from studen ...

  6. 将mysql的查询结果导出为csv

    要将mysql的查询结果导出为csv,一般会使用php连接mysql执行查询,将返回的查询结果使用php生成csv格式再导出. 但这样比较麻烦,需要服务器安装php才可以实现. 直接使用mysql导出 ...

  7. phpmyadmin #1045 #2002 无法登录 MySQL 服务器的解决方

    1.首先说下phpmyadmin的安装 a.解压放到网站的某个目录下,如mydbb.将config.sample.inc.php复制成config.inc.php 2.#2002 无法登录 MySQL ...

  8. python4delphi import lxml pandas 出错的小结

    环境: 1.win10 64位 2.delphi xe8 3.python2.7 4.python4delphi  (svn 2015-03-21 发布的83版本号) 5.lxml 3.4.4(通过p ...

  9. Linux 千万不要执行的10个命令

    1. rm -rf 命令 rm -rf命令是删除文件夹及其内容最快的方式之一.仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏.下列是一些rm 命令的选项. rm 命令在Linux下通常用来删除文件 ...

  10. AtomicInteger源码分析——基于CAS的乐观锁实现

    AtomicInteger源码分析——基于CAS的乐观锁实现 1. 悲观锁与乐观锁 我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时 ...