11.网络编程
创始人
2024-05-31 00:13:09
0

1.客户端-服务器

客户端和服务器是进程,不是机器或者主机

2.网络

对于主机,网络只是一种I/O设备,是数据源和数据接收方
一个插到I/O总线扩展槽的适配器提供了到网络的物理接口
物理上而言,网络是一个按照地理远近组成的层次系统
最底层是LAN(局域网),最流行的LAN技术是以太网(Ethernet)
一台主机发送一段位(称为帧),到这个网段的其他任何主机
每个帧包括头部位和数据位的有效载荷
头部位:标识帧的源和目的地址,以及长度
桥接以太网
多个不兼容的局域网可以通过路由器连接成一个internet(互联网络)
路由器也能连接高速点到点,称为WAN(广域网)
互联网络的特性:能由采用完全不同和不兼容技术的各种局域网和广域网组成
通过一层运行在每个主机和路由器的协议软件,消除不同网络之间的差异
协议软件的能力:
命名机制:每台主机被分配至少1个互联网络地址,唯一标识这台主机
传送机制:把数据位捆扎成包(不连续的片)
包由包头和有效载荷组成
包头包括包的大小、源主机和目的主机的地址
有效载荷包括从源主机发出的数据位
传送数据的实例:
(1)主机A的客户端进行系统调用,从客户端的虚拟地址复制数据到内核缓冲区
(2)协议软件创建LAN1的帧(封装)
互联网络包头寻址到主机B,LAN1帧头寻址到路由器
互联网络包的有效载荷是实际的用户数据,LAN1帧的有效载荷是一个互联网络包
(3)LAN1适配器复制帧到网络
(4)路由器的LAN1适配器从电缆上读取帧,并传送到协议软件
(5)路由器从互联网络包头提取目的互联网络地址,用它作为路由表的索引。
路由器剥落旧的LAN1的帧头,加上主机B的LAN2帧头,把帧传送到适配器
(6)路由器的LAN2适配器复制帧到网络
(7)主机B的适配器从电缆读取帧,并传送到协议软件
(8)主机B的协议软件剥落包头和帧头。
服务器进行系统调用时,协议软件将得到的数据复制到服务器的虚拟地址空间

3.全球IP因特网

每台因特网主机都运行实现TCP/IP协议(传输控制协议/互联网络协议)的软件
TCP/IP实际上是一个协议族,其中每一个都提供不同的功能
把因特网看成一个世界范围的主机集合:
主机被映射为一组32位的IP地址
这组IP地址被映射成一组称为因特网域名的标识符
主机的进程通过连接和其他主机的进程通信
TCP/IP为任意整数数据项定义了统一的网络字节顺序(大端字节顺序)
IP地址通常以点分十进制表示法表示,如128.2.194.242
因特网客户端和服务器通信时使用IP地址
域名:cmu.edu
数学角度可以认为每条主机条目是一个域名和IP地址的等价类

4.套接字接口

从Linux的内核来看,套接字是通信、连接的一个端点
从Linux的层序来看,套接字是有相应描述符的打开文件
用“地址:端口”表示
一个连接由两端的套接字地址唯一确定,这对地址称为套接字对,以元组表示
(cliaddr:cliport, servaddr:servport)
套接字的地址结构
socket函数:客户端通过socket建立与服务器的连接
服务器用bind、listen、accept建立与客户端的连接
bind函数:告诉内核,联系服务器套接地址和套接字描述符
listen函数:告诉内核,描述符是被服务器使用的,而不是客户端
客户端是发起连接请求的主动实体,服务器是被动实体
默认情况下,内核任务socket创建的描述符对应主动套接字,存在于客户端
listen将主动套接字转化为监听套接字,可以接受来自客户端的连接请求
accept函数:服务器通过accept等待来自客户端的连接请求
监听描述符:作为客户端连接请求的一个端点,通常被创建一次,存在于服务器的整个生命周期
已连接描述符:客户端与服务器连接的一个端点,每次服务器接受连接请求时都会创建,只存在于服务器为一个客户端服务的过程中
区分二者,可以建立并发服务器,同时处理许多客户端连接
每次一个连接请求到达监听描述符,可以派生一个新的进程,通过已连接描述符与客户端连接
getaddrinfo函数:将主机名、主机地址、服务名、端口号字符串转化为套接字地址结构
返回一个指向addrinfo结构的链表
getnameinfo函数:将套接字地址结构转化为主机和服务名字符串
套接字接口的辅助函数
open_clientfd函数:客户端调用,以建立与服务器的连接
open_listenfd函数:服务器创建一个监听描述符,准备接收连接请求
迭代服务器:一次只能处理一个客户端,一次一个地在客户端间迭代
并发服务器

5.Web服务器

Web客户端和服务器之间的交互通过一个基于文本的应用级协议,即HTTP协议(超文本传输协议)
Web的内容通过HTML语言(超文本标记语言)编写
Web客户端,即浏览器
超链接(指针)
Web服务器向客户端提供的内容:
磁盘文件称为静态内容
运行时可执行文件产生的输出称为动态内容
这些文件中的每一个都有一个唯一的名字,称为URL(通用资源定位符)
“?”分隔文件名和参数,“&”分隔参数和参数
https://www.baidu.com/s?ie=UTF-8&wd=hello&tn=78000241_13_hao_pg
客户端使用前缀,来决定与哪类服务器联系、服务器在哪里、监听的端口号
http://www/google.com:80
服务器使用后缀,来发现文件系统中的文件,并确定请求的是静态内容还是动态内容
/index.html
浏览器在URL后添加缺失的"/",并传递给服务器,服务器又把"/"扩展到某个默认的文件名
HTTP事务:
HTTP请求:
5:请求行
GET方法指导服务器生成和返回URI(统一资源标识符)(相应URL的后缀)
6:请求报头
代理缓存会使用Host请求报头,这个代理缓存有时作为浏览器和管理被请求文件的原始服务器的中介
客户端和原始服务器之间,可以有多个代理,即代理链
7:空的文本行,终止报头列表,并指示服务器发送被请求的HTML文件
HTTP响应:
8:响应行
9~13:响应报头
14:空的文本行
15~17:响应主体
CGI(通用网关接口):
客户端将程序参数传递给服务器
服务器将参数传递给子进程
服务器将其他信息传递给子进程
子进程将输出发送到哪里

相关内容

热门资讯

少年“巳”火   生生不息  ... 昆明信息港讯 2月24日上午,莲华小学教育集团文泽校区举行以“少年巳火  生生不息”为主题开学典礼,...
生物质能发电概念涨1.74%,... 截至2月24日收盘,生物质能发电概念上涨1.74%,位居概念板块涨幅第9,板块内,33股上涨,旺能环...
欣旺达:全资子公司拟与星航资本... 欣旺达公告称,公司全资子公司香港欣威拟与星航资本签署合伙协议,共同投资于Rockets Capita...
1月中国游戏产业月度报告:移动... 北京商报讯(记者 卢扬 实习记者 刘曼华)2月24日,据伽马数据发布《2025年1月中国游戏产业月度...
宁德时代港股IPO 万亿“宁... 《投资者网》张静懿2025年2月,全球动力电池龙头—宁德时代新能源科技股份有限公司(以下简称“宁德时...
2月26日起,正式开通! 转自:成都发布最新消息!G42沪蓉高速公路南充至成都段扩容工程取得新进展淮州新城收费站已通过质量检测...
德国大选:新总理默茨与朔尔茨、... 据央视报道,当地时间2月23日18时,德国新一届联邦议院(议会下院)选举投票正式结束,全国各地投票站...
春运期间青海省累计发送旅客78... 中新网西宁2月24日电(潘雨洁 马菊香)24日,记者从青海省交通运输厅获悉,春运期间,该省累计发送旅...
商保药品目录建设又推进一步,对...   来源:保险生活杂志  2月19日,保险业协会组织部分保险公司召开座谈会,积极研究商业健康保险药品...
宅家健身逆袭秘诀:就一根弹力带 转自:上观新闻好烦哦,明明想运动健身,出门又太冷了……有什么室内运动推荐吗?我知道!一根带子练全身!...
云南白药2月24日大宗交易成交... 云南白药2月24日大宗交易平台出现一笔成交,成交量8.06万股,成交金额448.46万元,大宗交易成...
去年农民人均可支配收入达231... 转自:杭州网央广网北京2月24日消息 2月24日,国务院新闻办公室举行发布会,介绍进一步深化农村改革...
地方新闻精选 | 贵州省大数据... 界面新闻记者 | 翟瑞民【贵州】省大数据局原局长景亚萍被查,前任升至贵阳市长后落马2月24日,贵州省...
【理响中国】担负起新时代新的文... 转自:千龙网文化关乎国本、国运。当前,各地各部门特别是宣传思想文化战线正在掀起学习《习近平文化思想学...
伊方称库尔德地区石油出口有望在... 格隆汇2月24日|伊拉克石油部长哈扬·阿卜杜勒-加尼周一表示,伊方正等待土耳其方面批准,以重启伊拉克...
外卖骑手五险一金的所有成本,全... 转自:证券时报证券时报网讯,京东集团宣布,鉴于目前外卖骑手的平均薪酬远低于京东快递小哥,为了薪酬公平...
中远海发回购100万股 总金额... 2月24日,中远海发(601866/02866)发布公告,2025年2月24日,公司在上海证券交易所...
内蒙古多措并举培育壮大农副食品... 新华财经呼和浩特2月24日电(记者李云平) 记者24日从内蒙古自治区农牧厅获悉,针对原粮活畜外流、精...
太赫兹概念涨1.78%,主力资... 截至2月24日收盘,太赫兹概念上涨1.78%,位居概念板块涨幅第8,板块内,15股上涨,泰豪科技、长...
“未见异常”实为大病漏诊,别让... 齐鲁晚报·齐鲁壹点评论员 王学钧一起跟单位体检有关的案件引发关注。陈某作为某公司在职员工,到某体检机...