计算机网络学习-https://blog.csdn.net/u014581901/article/details/50752849

出自:https://blog.csdn.net/u014581901/article/details/50752849

本页内容

1.进程通信的方式

2.套接字在通信中的作用

3.进程的寻址方式

4.应用层协议

1.进程通信的方式

    你每运行一个程序,都会有进程产生,可能是一个,也可能是多个。如果它只能自己一个人封闭孤单的运行,那就太无趣了。人大多数都想与朋友攀谈交流,进程也是如此。那么它们是如何做到的呢?

     如果同一主机上运行的进程想互相通信,它们可以通过进程间通信机制来完成,这种机制是由操作系统提供的,就像是自己家乡的方言,同为老乡,交流自然没有任何问题了。那么问题来了,如果我想离开家乡,外出闯荡,与在不同主机上运行的进程通信该怎么办呢?俗话说,在家讲方言,在外说普通话。不同主机上运行的进程要对话,当然要用大家都明白的方式——消息交换,来进行了。不然让一个用win方言的进程与一个用MacOS方言的进程见面时相互说自家方言,岂不让人贻笑大方。那么消息交换是通过什么来进行的呢?答案是:套接字。

2.套接字在通信中的作用

    套接字=socket

    进程间通信是利用socket发送/接受消息来实现的。

    

    从图中不难看出,套接字相当于一个公用的中间语言,让不同的主机可以顺利通话。要让套接字可以成功的做个好翻译,传输基础设施需向进程提供相应的API,供其使用。这里就要涉及到传输协议的选择相应参数的设置。我们暂不细说。

3.进程的寻址方式

   不同主机上运行的进程如何相互识别,你可能会说简单啊!每台主机不是都有IP吗?顺着IP去找不就行了吗?那门问题又来了,如果你的QQ想与你女朋友的QQ对话,可当信息依据你女朋友的IP地址传过去时,却发现你的女朋友又开了一个可以接受网络信息的进程——LOL客服端。那么,你的信息到底传给哪个进程呢?那你肯定会说传给QQ的网络进程啊,那到底哪个才是QQ的网络进程呢?对!这里我们还需要将相关进程标识一下,让别的进程发送的信息可以顺利到达目的进程。这就是我们所说的进程的标识符(不同主机上的进程相互通信,必须要有这个东西)。标识符由IP地址端口号(Port number)组成。主机上的不同进程都会被分配相应的端口号,就像每户人家都被分配门牌号一样。比如说:HTTP Server的端口号为:80,Mail Sever的端口号为:25。

4.应用层协议

   没有规矩,不成方圆。网络应用要想正常通信,必须要有好的协议来规范通信才行。网络应用要遵循应用层协议。应用层协议可分为公开协议私有协议。公开协议由RFC(Request For Comments)定义,允许互操作,如HTTP、SMTP等。私有协议多数是P2P文件共享应用,都开发公司自己制定,非公开。

   应用层协议主要是用来规范那些方面的呢?

   a.消息的类型(type):请求消息,响应消息。(你必须知道对面是什么,才能做好万无一失的准备)

   b.消息的语法(syntax)/格式:消息中有哪些字段,每个字段如何描述。

   c.字段的语义(semantics):字段中信息的含义。

   d.规则(rules):进程何时发送/响应消息等。

   最后,让我们用HTTP协议作为例子,结束这篇文章:

   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值