网络编程socket
网络编程
网络编程通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介仙湖链接组成的
编写基于网络的应用程序的过程称之为网络编程
学习网络编程就是要学习利用网络来与另一台计算机相互传输数据,开发出支持网络通讯的应用程序
C/S构架
提供数据的一方称之为服务器(Server)
访问数据的一方称之为客户端(Client)
浏览器也可以访问服务器上的网页数据,称之为B/S,其本质上也是C/S只不过客户端是浏览器
网络通讯的基本要素
两台计算机的想要通讯必须要具备两个基本要素
1 物理连接介质,包括网线,无线网,光纤等
2 通讯协议
通讯协议
协议就是标准,大家遵循相同的标准才能正常交流通讯
作为应用程序开发者,物理介质不需要我们关心,通讯协议才是我们学习的重点
OSI 七层模型
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
五层:应用层,传输层,网络层,数据链路层,物理层
四层:应用层,传输层,网络层,网络接口层
为了降低学习整个通讯流程的复杂度,将其简化为五层,四层
其中五层是我们学习的重点
一、物理层 就是物理介质
二、数据链路层
以太网协议(Ethernet)工作在数据链路层,其规定了电信号分组的方式以及电信号应该包含的内容
ethernet规定:
一组电信号构成一个数据包,叫做帧;
每一数据帧分为:报头和数据data两部分
head包含(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型(标签+以太网型),6个字节
data包含:(最短46个字节,最长1500字节)
数据包的具体内容
head长度+data长度最短64字节,最长1518字节,超过最大限制就分片发送
MAC地址
每块网卡出厂时有世界上唯一的mac地址,长度为48位二进制
三、网络层
ip协议是工作在网络层的协议,全称internet protocol address翻译为互联网协议地址
ip协议的地址称之为ip地址,广泛应用的v4版本即ipv4,规定网络地址由32位二进制表示
范围 0.0.0.0 - 255.255.255.255
一个ip地址通常写成四段十进制,前三位网络号标识子网,最后一位主机号标识主机
************************************笔记*************************************************************
网络编程
开发基于网络的应用程序
通讯的两个要素
1.物理连接介质
网线 wifi 光纤
2.通讯协议
指的是发送方与接收方共同定制的一套规范
CS构架
客户端 和 服务器
提供数据的一方称之为服务器
访问数据的一方称之为客户端
OSI七层模型
开放式系统互联通信参考模型
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
五层模型
应用层,传输层,网络层,数据链路层,物理层
四层模型
应用层,传输层,网络层,网络接口层
物理层:负责用于规范物理连接介质的协议
虽然可以传输二进制
问题是:对方不知道二进制到底有什么含义
数据链路层
工作在这一层的是以太网协议
1.规定一组电信号由多少位组成
2.一组电信号分为head和data
3.每一台计算机必须具备一个网卡
网卡上有一个全球范围内唯一的mac地址
4.采用广播的方式来查找对方计算机
网络层
工作在这一层的是IP协议 网络地址协议
每一台计算机必须拥有一个IP地址
IPV4 4位十进制 0.0.0.0-255.255.255.255
前三段用于区分网络号
后一段用于主机号
子网掩码:判断两个ip是否属于同一局域网
路由协议:用于选择出一条最短的传输路径
arp协议:通过ip地址获取地方MAC
ip地址分为 a,b,c,d,e
可以通过ip定位到全球范围内的某个局域网中的某一台计算机
传输层
规定每一个应用程序都必须拥有一个端口号
TCP协议:可靠传输协议,速度慢每次都要等待确认信息完整
三次握手:确认传输通道是可用的
四次挥手:确认数据传输全部完毕
UDP协议:不可靠传输协议
把数据发送到网络就结束,不关心对方是否接收到
效率高
应用层
是由c和s双方共同商量确定的数据结构
socket
内部封装了传输层一堆协议,留下简单的调用接口
调用socket提供接口就可以完成网络通讯
并且不需要关心协议内容
提高开发效率