说网络-扯扯蛋

很多骚年在进行编程工作的时候会用到网络库,Android里面我们从Volley到OKHttp,iOS里面我们从ASIHttpRequest到AFNetWorking。我们用这些网络库来实现上传下载,数据获取。从而讲丰富的数据展示在用户面前。80年代弹钢球的我一定无法了解这样的情景,当你打开操作系统中的web浏览器,输入一个资源定位符然后就可以获取远在万里之遥的一台服务器上存储的数据,并且经过web浏览器的处理以优雅漂亮的形式展示出来。何其伟大!

进入了21世纪之后,我们发现整个世界在改变着:数字化、网络化、信息化。而这些变化中,网络化是一个基础。是实现其他改变的基石。可以毫不夸张的说,辛勤的工作人员们在全世界搭建的各种网络,为我们提供了电视,数据,音频等便捷。你出门可以一个电话约朋友,打开视频网站可以看最新的剧集,客厅打开电视可以看到有趣的电视节目,好吧,可能这些电视节目并不是很有意思。

这样子,我们大概可以有一个了解,构建现代生活的网络大概有这么几种,电信网络,有线电视网络,计算机网络。

而这几个文章,主要是来自学生时代对计算机网络残存的记忆和一些无聊的呓语。也就是扯淡。

我们都知道的是计算机网络是实现驱动协议的一个工程。尤其是Web。在人们使用了路由和分组交换通过ISP提供商构建了一个这么老大的工程的时候,开始制定了一些列标准。并使之为人类造福。

因特网的基础建设者们通过双绞线,光纤,无限传输等等方式,将各种各样的的可以联网的设备连接起来,形成了因特网。并且通过之一种蜘蛛侠结网的方式将这个工程不断扩大。

随着工程的扩大,OSI的人们定义了一个七层网络模型(应用层,表示层,会话层,运输层,网络层,链路层,物理层),其实是蛮屌的,但是无奈发展不随着标准走,人们从已有现状中归纳了一个比较靠谱版(应用层,运输层,网络层,链路层,物理层)。

一个数据字段从一台电脑上,会被层层递进的加上一些标志,这个过程被人们称之为封包,雁过留痕。而通过物理传输发送到另一台电脑的时候又会被一层层剥离,雁过拔毛。正是由于这个复杂的过程涉及到的东西太多而繁杂。所以人们依据分层原则来设计理解他。

你在研发中常用的是HTTP,超文本传输协议,这个协议是依赖于传输层的TCP协议。通过三次握手建立无状态的连接,主要是能保证收发。当然,随着时代的发展,解决了温饱问题之后,人们就会想要大波妹子。基础传输能有之后,人们就想要安全,然后就有了SSL。

遇到了HTTP之后初学者还会学到一个概念,Socket。何为Socket,其实就是应用进程和传输层之间的一个门,而选择不同协议形式并建立套接字,将数据从应用进程推到传输层的过程,就是Socket编程。此时就不依赖HTTP这个东西了。

基于HTTP这中无状态的尿性,从事Web开发的伙伴们一定会遭遇一个叫Cookie的哥们。只是服务器对于客户浏览器请求之后写回给客户浏览器的一个值,以后再次请求的时候都会带着,服务端也会记录客户行为。实现些复杂的基于行为的推荐。

然后开发中还有个名词,CDN(内容分发网络)服务器加速,我会说它就是个代理缓存服务器。CDN公司在因特网上安装了许多地理上分开的缓存器。使大量流量实现本地化。

最后我将用代码实现个基于TCP的套接字,基于UDP的套接字,手动封装HTTP协议报文并详解含义。仔细分析SSL的安全属性。

好吧,我是开玩笑的,我才不会写这些东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS网络HTTP、TCP、UDP、Socket 知识总结OSI 七层模型我们一般使用的网络数据传输由下而上共有七...
    蜗牛也有梦想阅读 2,484评论 0 3
  • 定义 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议主要由三个要素组成:语义、语法及时...
    FlyAndroid阅读 1,028评论 0 10
  • 听说,所有不幸的源头都有一桩意外,所有幸福的源头都有一段巧合,穆锦葵不知道,杨旭的出现究竟是她生命里一件意外的巧合...
    夏苏末阅读 12,584评论 10 49
  • 我觉得猫是最有趣的动物。猫的耳朵尖尖的,可以听到很远的声音,就能判别出是否有老鼠出没。猫的尾巴摇来摇去,竖起来的时...
    琳2阅读 251评论 0 0
  • 责任二字,“轻如鸿毛,却重于泰山”。在生活中的点点滴滴,甚至我们整个人生我们都需要“责任”。 这两天听到不同的人说...
    7515b237f6ce阅读 526评论 0 1