网络通讯原理简介以及演示通讯过程

OSI网络七层参考模型

这是7层网络参考模型 非实现层面的

TCP/IP协议实现

TCP/IP协议实现了七层网络模型

将展示层和会话层合并到了应用层

微信、QQ或tomcat进程都属于应用层 该层的常用协议http、https、ssh、ftp

程序员只需要关注这层就可以了

其他层次 比如传输控制层(TCP、UDP)、网络层(IP、路由协议)、链路层(ARP协议)是内核实现的

用户态通过系统调用切换到内核态

演示下网络交互过程

通过ssh登录linux操作系统执行命令exec

在没有任何浏览器或工具的情况下访问百度 取回百度主页

这一去一回过程牵扯到用户层、内核、tcp通信、http协议

exec 8<> /dev/tcp/www.baidu.com/80

/dev/tcp/www.baidu.com/80 这是一个路径

前缀是/dev/tcp

linux操作系统一切皆文件 网络连接可以是一个文件 打印机可以是一个文件

以文件目录的方式来表示

内核最终会把它转换成socket

执行之后 在当前域中就有一个8了

这个8的输入输出指向和百度的这个socket连接

此时假设已经有了一个三次握手的socket连接了

那么要取回百度服务器的主页的时候

要给它发送什么才能取回来 牵涉到哪个协议

需要给百度发送一个http协议

GET / HTTP/1.0\n

/表示请求的资源

把这个字符串发送给百度 百度就知道了 你要请求主页了

协议就是规定了你发送的数据如何表示

HTTP协议就是数据如何表示HTTP协议

echo -e "GET / HTTP/1.0\n"

echo是打印

通过-e来识别换行符\n

http协议是拿换行符做切割得到一行行字符串

每行字符串会用空格做切割

遇到2个换行符之后才是post body信息

8<> 表示将输入输出的2个方向都给到了百度

echo -e "GET / HTTP/1.0\n" 1>& 8

将输出重定向到了8

1>& 标准输出

8的输出又指向了sokcet 给百度了

百度如果接受到了 那么就会给返回

那么就需要读取该返回内容

socket网络通讯是双向的 有输出就有输入

给百度发送了http请求协议头 文本

cat 0<& 8

读取socket 8中流回的内容

如果长时间没读取 那么就会断开连接

再来一次

读到了百度给返回的

HTTP/1.0 200 OK是响应头

接着是响应头的键值对

接着2个换行符

接着是响应体 内容就是百度的主页页面

取回东西之后就会断开连接

cd /proc/$$/fd

当前解释程序的进程ID是1307

fd是文件描述符

任何程序都有IO 都会打开文件 socket也是文件

0是程序指向终端的标准输入 system.in

1是标准输入system.out

2是system.error

这3个是任何程序都有的

socket 也可以给出一个数字也可以是一个递增的数字 来代表这个socket

fd文件描述符可以理解成一个变量 在java中 open一个文件得到一个file变量

lsof -p $$

012是指向终端的输入输出

9是一个tcp

本机随机端口号指向了百度的一个地址 80端口号 http协议

9 就是代表了对百度的一个socket

socket怎么建立的?

实际上是由内核完成的

总结

连接不需要人管

连上之后 客户端和服务端之间的通讯 你说啥?牵扯到http协议

连的是web server服务器所以用的http协议

连的是ftp服务器连的是ftp协议

应用程序application里面会有协议封装的过程

这个协议封装不是内核做的

而是某种软件 比如浏览器、postman、http client

用户在使用浏览器的时候不需要关注协议的封装只需要告诉它访问什么就可以了

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

推荐阅读更多精彩内容