网络应用_网络应用开发 - CSDN
精华内容
参与话题
  • 1.网络应用的体系结构首先要思考这样一个问题 网络应用应该采取什么样的体系结构? 凭什么非得按照它设计的来学习呢? 它好在哪里?有以下三种结构(1)客户机/服务器结构(C/S)(2)点对点(p2p)(3)混合结构...

    1.网络应用的体系结构

    首先要思考这样一个问题 网络应用应该采取什么样的体系结构? 凭什么非得按照它设计的来学习呢?  它好在哪里?

    有以下三种结构

    (1)客户机/服务器结构(C/S)

    (2)点对点(p2p)

    (3)混合结构(上面两种混合)

    客户机/服务器结构(C/S)

    服务器

    (1)7*24小时提供服务

    (2)永久性访问地址/域名

    (3)利用大量服务器实现可扩展性

    客户机

    (1)享受服务器提供的服务

    (2)间歇性接入网络

    (3)可能使用动态IP地址

    (4)不会与其他客户直接通信

    纯P2P结构

    (1)没有永远在线服务器

    (2)任意端系统/结点之间可以通信

    (3)节点间歇性接入网络

    (4)节点随时可以改变IP地址

    优点:高度可扩展  缺点:难于管理

    2.网络应用进程间的通信

    不同主机间运行的进程如何通信?   消息交换

    套接字:Socket

    进程间的通信一定要用到Socket

    类似于寄信:

     (1)   发送方将消息送到门外邮箱

     (2)   利用门外的通信基础设施传送到对方主机所在地  门外主机接收

     (3)   门外的邮箱(Socket)拿到信了

    传输基础设施向进程提供API
    (1)传输协议的选择

    (2)参数的设置

    如何寻址进程(IP+端口号)

    3.网络应用应用层协议的内容

    考虑一下四点

    (1)消息的类型

    (2)消息的语法/格式

    (3)字段的语义

    (4)规则

    4.网络应用的需求与传输层的服务

    (1)数据丢失了咋整?  可靠性要不要考虑

    某些不用考虑(网络电话)   

    文件传输必须100%可靠

    (2)时间/延迟  

    (3)带宽

    Internet提供的传输服务

    (1)TCP



    展开全文
  • 计算机网络应用(笔记)

    千次阅读 2018-02-27 16:09:59
    网络应用的体系结构a.C/S 客户机/服务器b.P2P peer to peerc.混合结构 网络应用:微信,QQ,支付宝,web,E-mail,网易云具体:网络媒体:传播信息网络娱乐:音乐,视频,游戏网络通信:电子邮件和即时信息检索:...
    概述


    1.网络应用的体系结构
    a.C/S 客户机/服务器
    b.P2P peer to peer
    c.混合结构

    网络应用:微信,QQ,支付宝,web,E-mail,网易云
    具体:
    网络媒体:传播信息
    网络娱乐:音乐,视频,游戏
    网络通信:电子邮件和即时
    信息检索:网络社区
    电子商务:
    网络金融:



    a.C/S的特点: web
    服务器:
    1.7*24
    2.永久性的域名
    3.利用服务器提供可拓展性

    客户机:
    1.与服务器通信
    2.间歇性接入网络
    3.可能使用动态ip
    4.不会与其他用户直接通信

    b.p2p特点:
    没有永远在线的服务器
    端对端直接传输数据
    节点间间歇性接入网络
    节点可能改变ip地址

    优点:高度可伸缩
    缺点:难于管理


    c.混合结构 集中前面2种的优点,规避前面2种的缺点
    Napster为例子
    文件传输使用p2p结构
    文件搜索使用C/S结构:
    每个节点向中央服务器登记自己的内容
    每个节点向中央服务器提交自己的查询请求,查找感兴趣的内容


    网络应用的基础:进程间的通信(送信一般)
    1.进程:客户端和服务器端
    2.寻址进程:IP+端口号 IP是主机地址,端口号是进程的地址,
    3.应用层遵循网络协议:a.公开协议:HTTP,STMP b.私有协议:P2P
    4.协议里面包括的内容:
    a.消息的类型(type):请求消息 响应消息
    b.消息的语法格式(syntax):消息中有哪些字段?
    每个字段如何描述?
    c.字段的语义(semantics) 字段中信息的含义
    d.规则(rules):进程何时发送/响应消息
    进程如何发送/响应消息

    网络应用对传输服务的需求:
    1.数据丢失(data loss):
    有些能够允许一定的数据丢失:网络电话
    有些不允许:文件传输
    2.延迟(delay)
    有些应用对延迟有要求:游戏
    3.带宽(bandwidth)
    相当于水龙头: 有要求的:在线网络视频 没有:e-mail

    internet提供的传输服务:
    TCP服务:
    1.面向连接:C/S进程之间需要建立连接
    2.可靠的传输
    3.提供流量控制和堵塞控制
    4.不提供延迟保障和最小带宽保障

    UDP:
    1.无连接
    2.不可靠的数据传输
    3.不提供:什么都不提供

    WEB应用:

    www(world wide web)包括 网页与网页间的相互连接
    创始人:Tim Berners-lee
    网页(web page)包含多个对象(object):
    html文件 多媒体文件 脚本文件

    对象的寻址(addressing):
    其实现通过 URL(uniform resource locator)统一资源定位符
    格式: scheme://host:port/path

    web应用遵循的协议:http(hyper text tranfer protocol)
    采用的是C/S结构 其中用户使用的是explorer 服务器使用的是 apache
    http版本:1.0 RFC1945 1.1 RFC2068

    使用TCP传输服务:
    服务器在80端口等待客户的请求
    客户请求建立TCP连接(创建套接字Socket)
    服务器接受TCP连接
    客户与服务器交换HTTTP消息

    无状态(stateless)
    它不会处理你过去发送的请求,每个都是新的

    HTTP连接:
    2种类型:
    1.非持久性连接(nonpersistent http)
    每个TCP连接最多允许传输一个对象 1.0版本
    2.持久性连接(persistent HTTP) 1.1版本
    每建立一个TCP连接,可以传输多个对象
    非持久性连接:
    具体过程:
    用户在浏览器输入地址后:如www.someschool.edu/someDepartment/home.index
    1-http客户端向地址为:www.someschool.edu的服务器进程(端口号80)发TCP请求
    2-服务器接受 这里是一个RTT(round trip time)
    3-将http请求消息(包含url地址:url表明客户端需要的对象)通过TCP连接的套接字发出
    4-接受,产生响应消息,通过套接字发出 这里也是一个RTT
    5-服务器关闭TCP连接
    6-客户端接收到响应消息,解析html文件,显示出包含10个只想jpeg的超链接
    7-重复1-6 10次

    响应时间=RTT*11+每次文件传回来的时间



    HTTP消息格式:

    http协议有2类消息:
    1.请求消息
    2.相应消息

    1.请求消息:
    请求行(requrest line)+头行(header line)+回车(barriage return)+消息体(entity body)


    输入信息:
    2种方式:post:在请求消息的消息体中输入在上传
    get:url方式:通过请求行(request line)的url字段上传

    2个版本中方法的类型:
    HTTP 1.0中: POST+ GET+ HEAD(用于测试): 请server雅蠛蝶将所请求对象放入相应消息中
    HTTP 2.0中: POST+GET+HEAD+PUT:将消息体中的内容上传到URL字段所指定的路径+DELETE:删除URL字段所指定的文件

    2.响应消息:
    状态行(status line):+headerline+data(requested html line):响应消息的第一行
    状态行代码(在状态行里面):
    200 OK
    301 move permanently
    400 bad request
    404 not found
    505 HTTP version not supported


    体验一下http
    利用telnet登录到某个web服务器
    输入一个http请求
    查看http服务器所返回的响应消息

    cookies:
    识别用户,进行session跟踪的储存在用户终端的加密数据
    组件:
    1.请求消息的头部行
    2.响应消息的头部行
    3.客户端由浏览器管理cookies
    4.服务器端的后台数据库

    cookies的原理:
    请求消息后在响应消息中返回一个小饼干,如set cookies: 1678
    下一次请求消息中就会包含cookies: 1678
    然后server 就会进行cookies specific action,然后再发出响应消息

    cookies的作用:
    身份验证
    购物车
    推荐
    web-email


    web缓存/代理服务器:

    功能: 在不访问服务器的前提下满足用户的HTTP请求
    诞生的原因:
    1.缩短客户请求的响应时间
    2.减少组织/机构的流量
    3.在大范围内实现有效的内容分发
    web缓存/代理服务器由ISP架设

    web缓存/代理服务器时一个 中介
    1.用户设置通过web缓存 进行web访问
    2.如果web缓存有所请求的对象,在返回响应请求
    如果web缓存没有,则 web缓存/代理服务器 向原始服务器发送http请求,获取对象,然后返回给客户并保存该对象

    web缓存/代理服务器既充当客户端,也充当服务器

    Q:web服务器如何保证网页是最新的?
    A:
    通过条件性GET方法:
    目标:使得web缓存中的版本为最新*
    缓存:字HTTP请求中声明所持有版本的日期:If-modified-since:<date>
    服务器:
    不是最新则在响应消息中获取对象
    如果是最新的则在响应消息中不包含对象,头部行中:HTTP/1.0 304 Not Modified


    Email应用的构成组件:
    邮件客户端
    邮件服务器
    SMTP协议(simple mail transfer protocol)

    用户发送和接收邮件要通过邮件服务器(Mail Server),他们之间使用SMTP协议
    邮件服务器:当发送的时候充当客户端,接受邮件的时候充当服务器

    SMTP协议:
    因为需要可靠性,所以使用的是TCP连接
    应用的端口号为25
    传输过程的三个阶段:
    握手
    传输
    关闭
    交互模式:请求or命令-响应 交互模式
    采用持久性连接
    消息必须由7位ASCII码构成
    SMTP服务器通过CRLF.CRLF确定消息的结束
    与HTTP的对比:
    HTTP:拉式(pull)
    SMTP:推式(push)
    都是使用请求/响应模式
    命令和状态代码都是ASCII码
    HTTP:每个对象封装在独立的响应消息中
    SMTP:多个对象在多个部分构成的消息中发送

    Email的消息格式:
    SMTP:Email的传输,交换协议
    RFC822:文本消息格式标准
    头部行(header line)
    to
    from
    subject
    消息体(body)
    消息本身
    只能是ascii码本身
    如果不是ascii码,如中文,音频,视频等,要使用MIME:多媒体邮件扩展 RFC 2045,2056
    方式:通过在邮件头部增加额外的行以声明MIME的内容类型


    使用telnet可以交互地使用email应用 像linux一般
    telnet servername 25
    服务器返回代码:220
    输入以下命令与SMTP服务器交互:
    HELO
    MAIL FROM
    RCPT TO
    DATA
    QUIT

    访问邮件需要另一种协议:邮件访问协议
    1.POP协议(post office protocol)[RFC 1939]
    认证/授权和下载
    2.IMAP(internet mail access protocol)
    更多功能
    更加复杂
    能够操纵服务器上存储的信息
    HTTP:163,QQmail

    POP协议展示:


    IMAP协议:
    所有消息统一保存到一个地方:服务器
    允许用户利用文件夹来组织信息
    支持跨会话(session)的用户状态:
    文件夹的名字
    文件夹与消息ID之间的映射???



    DNS:Domain name system
    internet上主机和服务器的识别靠的是:
    IP地址
    域名

    DNS服务:
    域名向IP地址的翻译
    主机别名
    邮件服务器别名
    负载均衡:web服务器 访问google时,各个服务器轮流

    结构:分层分布式
    为什么不用集中式?
    害怕单点失败
    流量过大
    距离过远 RTT很大
    维护起来比较困难



    本地域名服务器不知道映射时,访问根域名服务器
    全球有13个根域名服务器

    顶级域名服务器(TLD:Top-level domain):负责com, org, net, edu等顶级域名和国家顶级域名:cn,hk,fr
    network solution负责维护com顶级域名服务器
    educause负责维护edu顶级服务器

    权威域名服务器:组织的域名服务器
    由组织负责维护

    本地域名服务器:
    不严格属于层级体系
    每个ISP都有一个本地域名服务器
    他是一个代理,无论是迭代,还是递归查询,都要经过他,并且,对于顶级域名会进行缓存,因此,根域名解析服务器不经常被访问









    在应用层实现的internet核心服务
    DNS协议:
    消息:查询(query)和回复(reply)
    消息格式相同



    注册域名的方法:
    1.向域名管理机构(network solutions)注册域名networkutopia.com
    a.提供你权威域名服务器的名字和IP地址
    b.network solutions向com顶级域名解析服务器中插入2条记录
    *(networkutopia.com, dns1.networlutopia.com, NS)
    *(dns1.networkutopia.com, 212.212.212.1, A)
    2.前面的注册完毕后,就要在权威域名解析服务器中为:www.networkutopia.com加入Type A记录,为networkutopia.com加入Type MX记录

    DNS记录:
    资源记录(RR,resource records)
    Type=A
    name:主机域名
    value:IP地址
    Type=NS
    name:域
    value:该权威域名解析服务器的主机域名
    Type=CNAME
    name:某一真实域名的别名
    value:真实域名
    Type=MX
    value是与name向对应的服务器


    RR format(name, valur, type, ttl)





    展开全文
  • 最通俗易懂的网络应用层协议详解

    万次阅读 多人点赞 2017-03-07 18:47:17
    前言其实本文只是讲解从传输层到应用层实现网络消息传递的一个详细流程,至于更底层的网络层和网络接口层,那就不在我的考虑范围内了,事实上那部分机制是不需要你去操心的,除非你想开发操作系统!然后本文打着通俗...

    前言


    其实本文只是讲解从传输层到应用层实现网络消息传递的一个详细流程,至于更底层的网络层和网络接口层,那就不在我的考虑范围内了,事实上那部分机制是不需要你去操心的,除非你想开发操作系统!

    然后本文打着通俗易懂的标题,所以在前言之后我将不会提及任何一个新手可能会不理解的关键字或专业术语(也就是说这样只是方便了理解并不方便使用,但这就是本文的目的,毕竟有了清晰的理解之后无论再换到哪个平台都是同样的使用方式,只不过部分专业术语我可能会在它第一次出现的位置放个【】描述一下它的本名),接下来我将开启典型的情景模式进行讲解。

    首先声明,本文主要是根据自己的理解编写而来,如果有错误的地方,不要犹豫,直接打脸就行了。

    背景


    电脑A和电脑B【服务器和客户端】是相隔了未知距离的两台电脑,有一天,A突然想要跟B打招呼(也许是冥冥之中的命运,他知道了B的存在),这时互联网大哥就出来了(至于这货是怎么诞生的有兴趣的再去查他的生辰吧),A和B都买了一根最新潮的网线【数据传输线】,插在自己身上同时两人都连接到了互联网内。

    互联网大哥这时就开始推销了:你想要跟B打招呼吗?拜托我不就成了,A你把要说的话告诉我,然后我再告诉B,同时B要对你说的话我也能反馈给你。

    A一听兴奋了,原来打个招呼这么简单,想着他一股脑儿的把自己想说的话通通告诉了互联网大哥,然后......

    就没有然后了,互联网大哥跑断了腿也没能找到B住在哪儿,因为A并没有告诉他B的住处,事实上A也不知道B的住处,所以,这场原本预料之中无比轻松欢快的交流宣告破裂。

    【任意电脑连接至互联网,便可以通过互联网传输数据,电脑间的资源共享其实就是把一台电脑的资源数据通过互联网传递到另一台电脑,在另一台电脑生成一个一模一样的资源,从而实现了资源共享】

    问题来了:怎么找到B的住处?


    这天,A在医院陪着断腿的互联网大哥,他们商量着一种可以找到B的住处的方法。

    互联网大哥:我们整个互联网家族兄弟姐妹千千万万,B虽然也是委托给了我们家,但我也找不到跟他直接联系的那个人是谁呀,有可能是我千千万万兄弟姐们姨嫂舅伯中的任何一个。

    A点着头:对,这确实是个麻烦事,看来我们的首要目的就是要先知道B的住处。

    想了一想,这时互联网大哥突然一拍脑门:我想到法子了,我让族里的兄弟姐妹们给每家每户都标个门牌号【IP地址】不就得了,这样的话往后家家户户串门就要容易得多了。

    想着,互联网大哥直接从病床上翘了起来,不顾A的拦阻瘸着个断腿就跑出了医院,他迫不及待的想要把这种新潮的想法普及给族里的每个兄弟姐妹,这样的话,他也能帮助A找到B的住处了。

    ......

    也不知道是过了多久以后,这天互联网大哥再次登门到了A家。

    A无比热情的迎接了他,饭后互联网大哥递了一张名片给A:这是B家的门牌号。

    A接过这张名片,听着互联网大哥给他介绍上面的基本信息:147.258.369.145是他家的门牌号,现在注册门牌号的住户太多,我们分了四个0到255的数再通过符号点连接组成,至于为什么要用点来连接,嘿嘿,这也是我提的方式,毕竟147.258.369.145比147258369145容易识别得多。

    听着互联网大哥说完,A算是明白了:那这么说的话往后我把想说的话告诉你,你就能通过这个门牌号传达到B那里去了吗?

    互联网大哥点着头:对,而且不只是我,只要是我们家族内的任何一个成员,你把要传递的话告诉他,再把传递的门牌号告诉他,他都能帮你传达消息。

    A一听兴奋了,原来打个招呼终于变得这么简单了,想着他一股脑儿的把自己想说的话通通告诉了互联网大哥,然后......

    就没有然后了,互联网大哥跑断了腿也没能找到哪个是B,因为B的家族里也有数不清的兄弟姐妹,很明显他也不知道其中哪个是B,所以,这场原本预料之中无比轻松欢快的交流又一次宣告破裂。

    【互联网中通过IP地址 + 端口号才能完整的定位到某台电脑的某个程序,从而向该程序发送数据,只依靠IP地址的话不能发送到特定的程序】

    问题来了:怎么知道在B的家族中哪个是B?


    这天,A陪在医院替互联网大哥削着苹果。

    互联网大哥想来想去总觉得这刚施行起来的门牌号机制还是不太完善,不过突然他灵光一闪,又想到了一个极好的法子来改善这个门牌号机制:对呀,我们要是给每家每户的每口人都制定一个身份证【端口号】不就得了,这样通过门牌号和身份证就可以准确的找到B了。

    想着,互联网大哥直接从病床上翘了起来,不顾A的拦阻瘸着个断腿就跑出了医院,他迫不及待的想要把这种更新潮的想法普及给族里的每个兄弟姐妹,这样的话,他也能帮助A找到B了。

    ......

    也不知道是过了多久以后,这天互联网大哥再次登门到了A家。

    A无比热情的迎接了他,饭后互联网大哥递了一张名片给A:这是B家的门牌号和B的身份证。

    A接过这张名片,只见上面写着:147.258.369.145:80,后面这个80的话应该就是B的身份证了。

    A说:这样的话往后我把想说的话告诉你,你就能通过这个门牌号和身份证传达到B那里去了吗?

    互联网大哥点点头:对。

    A一听兴奋了,原来打个招呼终于变得这么简单了,想着他一股脑儿的把自己想说的话通通告诉了互联网大哥,然后......

    就没有然后了,互联网大哥虽然把A说的话带到了B那里,但B完全看不明白A在说些什么,因为互联网大哥是用录音机【编码】来记录A的传话的,而他们的录音机只能记录一些正常人完全没法看懂的由数字1和数字0组成的数据【二进制数组】,所以,即便他将A说的话完好无损的用录音机录了下来,但到了B那里时却不知道用什么方式才能播放出来了,所以,这场原本预料之中无比轻松欢快的交流又一次宣告破裂。

    【互联网中传递的数据都是由1和0组成的字节数组,任意数据类型(int、string等),任意文件(.mp4、.mp3等)都能转换为字节数组从而在网络中传递,接收方按照传输方的编码方式对字节数组进行转换之后,得到特定的数据类型或文件,这才算是完成了数据的传输】

    问题来了:A要传递的话已经到了B的手里,但怎么才能让B看懂A所说的话呢?


    这天,A又和互联网大哥聚在一起。

    互联网大哥抱怨说:一定是录音机有问题,我要去找生产厂商投诉。

    A提议道:找厂商定做一款播放器不就得了,能够把录音机录下来的声音原封不动的回放出来。

    听A这一说,互联网大哥一拍脑门:好主意啊,这样的话我们也不用管录音机里装的那些1啊0的是些什么数据了,只管让播放器按照录音机录音的方式【编码方式】进行回放就可以了!

    想着,互联网大哥立马就跟A道别离去,也不顾A的挽留,他迫不及待的想要把这种更新潮的想法普及给族里的每个兄弟姐妹,这样的话,他也能帮助B听到A的传话了。

    ......

    也不知道是过了多久以后,这天互联网大哥再次登门到了A家。

    A无比热情的迎接了他,饭后互联网大哥介绍了他们最新的传话工具,录音机和播放器。

    A一听兴奋了,原来打个招呼终于变得这么简单了,想着他一股脑儿的把自己想说的话通通告诉了互联网大哥,然后......

    就没有然后了,互联网大哥虽然把A说的话带到了B那里,但B完全没听明白A在说些什么,因为互联网大哥用录音机同时记录了A说的好几句话。

    本来传话的内容是这样的:你好呀!我叫A,我住在A家村!

    但播放器播放出来的内容却是这样的:你好呀我叫,A我住,在,A家村!

    所以,这场原本预料之中无比轻松欢快的交流又一次宣告破裂。

    【因为数据的接收方收到的只是一长串的字节数值,先不论他知不知道该用什么编码方式进行转换,就算知道了,他将数据转换出来以后也只是一段一段分隔开的内容,或是一长串黏在一起的内容,总之他可不知道接收到的这个数据究竟是装了四个int数据呢,还是三个int一个string,还是一张图片】

    问题来了:A要传递的话已经到了B的手里,但怎么才能让B理清A要表达的语意呢?


    这天,A又和互联网大哥聚在一起。

    互联网大哥抱怨说:一定是播放器有问题,我要去找生产厂商投诉。

    A提议道:播放器应该没有问题,我想我们可以在传话的内容上做些手脚,比如说,用一些特殊的东西来区分开我说的每一句话,也就是,制定一种规则【传输协议】

    听A这一说,互联网大哥一拍脑门:好主意啊,我想到了一个法子,我们在每句话的前面都加上一个表示你开始说话的词语【消息头】,然后里面记录你这句话说了多少个字【消息头记录的消息体长度】,这样的话就算播放器放出来不是连贯的,但B也能根据我们附加的信息看明白你说的话。

    想着,互联网大哥立马就跟A道别离去,也不顾A的挽留,他迫不及待的想要把这种更新潮的想法普及给族里的每个兄弟姐妹,这样的话,他也能帮助B听明白A的传话了。

    ......

    也不知道是过了多久以后,这天互联网大哥再次登门到了A家。

    A无比热情的迎接了他,饭后互联网大哥介绍了他们最新的传话规则,以这种规则来传话的话,A说的一句话从播放器放出来大概就是这种格式:

    【消息头】A说了一句话,说了三个字【消息体的长度】【消息体】你好呀!

    不过互联网大哥继续说:只不过这种规则的话,为了防止前面的标记(A说了一句话,说了三个字)也被播放器打乱顺序,我们得规定这个标记必须是一个固定的长度,以及一个固定的语法,同时这个长度和语法要让B也知道,这样的话就算传递到B那里时前面的标记被打乱了(比如在B那里是这样:A说了一,句话说了,三个字),但B只要根据我们规定的长度(比如这里是:11)和语法就能整理出这个标记,然后再通过这个标记整理出他后面包含的话,从标记中可以看出后面只有三个字是包含在这句话中的,将这三个字:你好呀,提取出来就是一句完整的话,然后 你好呀 后面跟着的又是下一句话的标记,再根据标记的长度固定为11,筛选出11个字,整理出来就是下一句话的标记,然后根据标记中又可以得出下一句话的长度,以此类推......

    A一听兴奋了(虽然他压根就没听明白),原来打个招呼终于变得这么简单了,想着他一股脑儿的把自己想说的话通通告诉了互联网大哥,这次,终于成功了,B终于听到了A对他说的话,虽然内容中有很多不属于原话的标记信息,但B总算是听明白了:

    A说了一句话,说了三个字你好呀
    A说了一句话,说了三个字我叫A
    A说了一句话,说了六个字我住在A家村

    同时,B也通过A的门牌号和身份证并使用这种互联网家族推行的规则向A回应了一声:

    B说了一句话,说了三个字你好呀
    B说了一句话,说了六个字很高兴认识你

    ......

    至此,这场原本预料之中无比轻松欢快的交流到这里终于轻松欢快的完成了。

    互联网大哥为此感到无比的欣慰,虽然只是为A和B解决了看似简单的互相传话,但在这之后,他想到了可以把任何东西都通过一种方式变成很多个1和0组成的数据,然后送到指定的门牌号和身份证的人手里,从而实现了一个无比复杂的物流链,那种最初的和A制定的规则也一直延续了下来。

    至此,故事讲完了,如果你还是没听懂或者压根就没看明白讲述了什么,那一定是A和B的描述有问题(A:这锅我不背!B:这锅我不背!),不过,我觉得还是有必要进行总结一下。

    总结


    总结的话大概就是下面两点:

    1、【传输层】两台电脑之间要互通消息的话,通过IP地址和端口号来确定各自的位置,然后将要传递的数据转化为字节数组(因为目前只支持传递这种格式的数据,事实上所有数据存放在内存中都是这种格式),进行相互发送和接收,至于传输层,也是有传输协议的,不过这个一般不需要你去管理,提一下,一般只需要你去关心的就是TCP/IP协议,当然还有UDP/IP协议。

    2、【应用层】虽然发送方知道自己发送的是什么东西、转化成字节数组之后有多长,但接收方肯定不知道,所以应用层的网络协议诞生了,他规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里必须记录消息体的长度等一系列信息,以方便接收方能够正确的解析发送方发送的数据。

    再次整理一下流程:

    发送方发送消息 ->

    接收方首先根据协议规定的消息头长度(比如30),取出30个字节 ->

    再根据协议规定的消息头编码方式(比如UTF-8),将这30个字节转换为对应数据,也就是得到消息头 ->

    再根据协议规定的消息头中的特定位置记录有消息体的长度(比如200),从而在这30个字节之后再取出200个字节 ->

    再根据协议规定的消息头中的特定位置记录有消息体的编码方式(比如UTF-8),对这200个字节进行转换,从而得到与发送方发送时一模一样的数据。

    所以说,应用层的网络协议,他旨在让你更方便的应用从网络中接收到的数据,至于数据的传递,没有类似http协议的东西,你也可以直接在两台电脑间开干,只不过传来传去就是一堆1和0组成的字节数组,如果你认为能够看得懂,那也就可以不使用协议了。



    转载请注明出处:http://blog.csdn.net/qq992817263/article/details/56669228

    展开全文
  • 网络应用模式

    2019-12-16 14:06:29
    网络应用模式 C/S(Client/Server):C/S结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机通过局域网与服务器相连,接收用户的请求,并通过网络向服务器放松请求,对数据库...

    网络应用模式

    C/S(Client/Server):C/S结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机通过局域网与服务器相连,接收用户的请求,并通过网络向服务器放松请求,对数据库进行操作。服务器接收到请求,将数据提交给客户机,然后客户机对数据进行计算后讲结果呈现给用户。C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多,所以C/S结构只限于小型的局域网。

    B/S(Browser/Server):B/S架构采取浏览器请求,服务器响应的工作模式。用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;当用户发送请求时浏览器将请求提交给服务器,服务器对请求处理后生成HTML页面返回给浏览器,最后浏览器将页面显示给用户。给结构已经成了当今软件应用的主流结构模式.
    在这里插入图片描述

    P2P:P2P在IT最初的含义是Peer-to-Peer(点对点),之后的含义数Point to Point,现在P2P已经被广泛的理解为Pointer to Pointer,PC-to-PC等;简单的讲P2P就是数据不在通过服务器传输,而是网络用户之间直接传输数据,例如腾讯的QQ

    展开全文
  • 计算机网络13--网络应用的体系结构

    千次阅读 2016-02-26 16:17:02
    1.网络应用的三种体系结构简介 2.客户机/服务器结构 3.P2P结构 4.混合结构 1.网络应用的三种体系结构简介  网络应用的体系结构主要有以下三种:  a.客户机/服务器结构=Client-Server(C/S)  b.点对点结构=Peer...
  • 典型的网络应用模式大致有三类:B/S、C/S、P2P。其中B代表浏览器(Browser)、C代表客户端(Client)、S代表服务器(Server),P2P是对等模式,不区分客户端和服务器。B/S应用模式中可以视为特殊的C/S应用模式,只是...
  • win10服务主机服务占用大量网络宽带

    万次阅读 2017-07-12 13:28:37
    微软官方解释内容如下Windows 更新传递优化: 常见问题解答借助 Windows 更新传递优化,您不仅可以从 Microsoft 获取 Windows 更新和 Windows 应用商店应用,还可以从其他来源获取它们。 如果 Internet 连接受限或不...
  • 我国网民上网最爱干三件事:娱乐聊天看新闻

    万次阅读 多人点赞 2009-07-17 21:05:00
    报告称,我网民在网络娱乐、信息获取和交流沟通类网络应用上使用率较高,除论坛/BBS外,这三类网络应用在网民中的使用率均在50%以上,网络购物、网上支付等商务交易类网络应用使用率相对较低.其中,网络娱乐类应用在高速...
  • 三级网络技术大题大题总结之应用题(图片版)

    千次阅读 多人点赞 2019-09-18 14:56:42
    额外零散填空; 1) 2) 3) 4) 5) 6) 7) 8) 9)
  • NB-IOT的物联网十大典型应用场景窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,...
  • 应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。 不同的网络应用需要不同的协议,如万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议...
  • 科技发展的脚步越来越快,人类已经置身于信息时代。而作为信息获取最重要和最基本的技术——传感器技术,也...传感器信息获取技术已 经从过去的单一化渐渐向集成化、微型化和网络化方向发展,并将会带来一场信息革命。
  • 基于TCP/UDP的应用层协议有那些

    万次阅读 2011-10-03 10:02:27
    基于TCP/UDP的应用层协议有那些TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
  • 计算机网络协议层次

    万次阅读 多人点赞 2016-11-16 14:54:15
    本文介绍了计算机网络的协议层次划分
  • 基于TCP/UDP的应用层协议

    万次阅读 2018-05-21 19:10:48
    Telnet(Teletype over the Network, 网络电传) ,通过一个终端(terminal)登陆到网络 FTP(File Transfer Protocol, 文件传输协议) ,由名知义 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送...
  • 应用层协议: 1、远程登录协议(Telnet) 2、文件传输协议(FTP) 3、超文本传输协议(HTTP) 4、域名服务协议(DNS) 5、简单邮件传输协议(SMTP) 6、邮局协议(POP3)   其中,从网络上...
  • 软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二。2012年7月,SDN代表厂商Nicira被VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC...
  • 单击应用程序 &gt; 实用工具 &gt; 钥匙串访问 Keychain Access2. 单击菜单条:钥匙串访问 &gt; 证书助理 &gt; 创建证书3. 输入证书信息名称: (默认会用中文名,但不便于在命令行中输入,建议改为...
  • 1.物联网定义:物联网是通信网和互联网的拓展应用网络延伸,它利用感知技术与智能装臵对物理世界进行感知识别,通过网络传输互联,进行计算、处理和知识挖掘,实现人与物、物与物信息交互和无缝链接,达到对物理...
  • Mina和Netty的选择

    万次阅读 2016-06-16 13:41:24
    Mina和Netty都是Java领域高性能和高可伸缩性网络应用程序的网络应用框架,在实际生产应用中都是不错的佼佼者。 Netty 是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以...
1 2 3 4 5 ... 20
收藏数 2,068,536
精华内容 827,414
关键字:

网络应用