"范老湿从不会计算机网络"

嘛。。。没什么可说的Orz既然上次开了SQL的坑,这次就说说计算机网络好了(之前的坑快去填啊喂!)Orz那么名字也延续上次的嗯。“范老湿从不会计算机网络”,参考书籍是James F. Kurose和Keith W. Ross的《计算机网络:自顶向下方法》。

说到网络就不得不说TCP/IP协议,即传输控制协议(Transmission Control Protocol)和网际协议(Internet Protocol)。我们也知道TCP/IP协议分为五层,那么就一层一层说吧。

一、应用层

应用层,顾名思义,和网络应用的原理与实现有关。我们在这一章中主要会了解Web、电子邮件、DNS和对等邮件分发等网络应用。同时,我们也会接触一些TCP/UDP的网络应用开发与运行。Socket这个词你可能并不陌生,它就可以用来实现一些客户端——服务端应用程序。

1.1原理

1.1.1 网络应用程序体系结构

主要分两种:客户端——服务端体系结构(client-server architecture)和P2P体系结构(Peer to Peer architecture)。

客户端——服务端体系结构中,用于产生请求(request)的被称为客户端(client),用于处理请求,产生响应(response)的被称为服务端。例如用户在浏览器中点击了一个链接,即向服务器请求了一个页面;web服务器接收到请求后,返回所请求的对象作为相应。
客户端——服务端体系结构有两个特点:

  • 客户端之间不直接通信;
  • 服务端具有固定、周知的地址(被称为IP地址)。
    按照常识,如果客户端请求过多,服务端必然不堪重负。因此,一些压力比较大的网络服务常常在全球各地建立数据中心,既分散了压力,又加快了不同地区的访问速度。

而P2P体系结构对于数据中心的专用服务器依赖很小,或者说没有依赖;相反,应用程序在间断连接的主机对之间直接通信。这些主机对之前被称为对等方。这些对等方也不为服务提供商所有,而是台式机、笔记本、手机等个人设备。P2P体系结构最显著的优点就是它的自扩展性(self-scalability),即在一个P2P文件共享服务中,每个对等方都由于请求产生工作量, 但是每个对等方也向其他对等方分发文件,从而提高了整个系统的服务能力。
而P2P体系结构也面临三大挑战:

  • ISP友好:由于ISP的本地优化,下载速度一般比上传速度要小得多,从而影响了系统整体性能;
  • 安全性:由于P2P的高度分布性,P2P应用会给安全带来挑战;
  • 激励:如何说服用户为P2P应用提供存储、带宽、计算等资源。
1.1.2 进程通信

我们都知道,在操作系统中,进行通信的实际上是进程(process)。两个不同端系统上的进程通过报文(message)相互通信。
对于每一对通信进程,我们通常将这两个进程之一标示为客户端(client),而另一个标示为服务端(server)。对于P2P文件共享系统中,一个进程可以既上传文件,又下载文件;但是对于某一个通信场景,仍可以将一个进程表示为客户端,一个进程标示为服务端,定义如下:

  • 在给定的一对进程之间的通信会话场景中,发起通信的进程被标识为客户端,在会话开始时等待联系的进程是服务端

进程之间通过socket作为API发送或者接收报文,通过IP地址和端口号来寻址。IP地址来确定主机,而端口号用来标识不同的服务。如web服务器用80端口,邮件服务器进程用25端口,ssh服务用22端口等等。

1.1.3 可供应用程序使用的运输服务

对于服务来说,必然面对各种各样的需求。衡量一个需求通常有以下几个维度:

  • 可靠数据传输
    例如电子邮件、文件传输、远程主机访问等应用,数据丢失可能导致灾难性的后果。确保数据正确、完全的传输的数据交付服务被称为可靠数据传输
    相对的,也存在容忍丢失的应用,如民用交谈式音频/视频等。
  • 吞吐量
    在一些网络应用,如流媒体播放、大规模分布式计算中,如果处理不好的话,网络带宽可能成为影响整体系统性能的短板。具有数据吞吐量要求的应用被称为带宽敏感的应用。而弹性应用能根据情况或多或少地利用可供使用的吞吐量,如电子邮件、文件传输、web传送等。
  • 定时
    运输层协议也能提供定时保证。在一些线上交互场景,如网络游戏、网络电话会议等场合,若不能保证报文在一定时间内(如100ms)到达,则可能出现卡顿的情况。
  • 安全性
    主要指防止在传送过程中被第三方抓包儿导致的信息泄漏。可采取加密等措施。
1.1.4 因特网提供的的运输服务

主要是TCP和UDP两种。
TCP服务模型包括面向连接的服务和可靠数据传输服务。

  • 面向连接的服务:在应用层报文开始流动之前,TCP让客户端和服务端互相交换运输曾控制信息,即“握手”。在这个阶段后,一个TCP连接就在两个进程的socket之前建立了。TCP连接是全双工的,连接双方的进程可以在此连接上同时进行报文的收发。应用程序结束报文连接后,必须拆除该连接;
  • 可靠的数据传输服务:通信进程能够通过TCP,无差错,按适当顺序交付所有发送的数据。

TCP协议还具有拥塞控制机制。

为了解决传送过程中的安全问题,SSL(Secure Socket Layer)技术将TCP“升级”,有自己的API,但是SSL不是同TCP、UDP同一层次的传输协议,而是对TCP的“加强”。

UDP是一种不提供不必要服务的轻量级运输协议。UDP是无连接的,没没有握手过程。UDP协议提供一种不可靠数据传送服务,即不保证报文到达接收进程,也不保证到达顺序。
UDP协议也不具有拥塞控制机制。

然而,目前任何一种协议都无法提供定时或带宽保证。

1.1.5 应用层协议

应用层协议主要解决报文的结构的定义,例如:

  • 交换的报文类型,例如请求报文和响应报文;
  • 各种报文类型的语法,即报文中字段及其描述方式;
  • 字段的定义;
  • 一个进程何时以及如何发送报文,对报文进行响应的规则。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....
    牛富贵儿阅读 2,753评论 0 3
  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 19,873评论 6 120
  • 网络概念第一天 两台电脑怎么通过网络传输数据?怎样才能知道传输的是数据?谁摸过网线? 看电影,怎么看的?通过电流,...
    小吖朱阅读 1,554评论 0 1
  • 【计算机网络】传输层 传输层协议概述 传输层协议为运行在不同host上的进程提供了一种逻辑通信机制。使得端到端不需...
    666真666阅读 2,002评论 0 4
  • 问君, 可曾相知? 可曾相思? 君若, 不曾相知! 不曾相思! 怎懂? 相知不易! 相思不堪! 心不怨却微凉, 人...
    艾弥儿阅读 484评论 3 14