网络编程预备知识
2018-01-16 17:50
218 查看
一、网络编程预备知识
1、****网络模型
OSI模型 7层:应用层 表示层 会话层、 传输层、网络层、数据链路层 物理层
TCP/IP 模型 4层: 应用层、传输层、网络层、物理层
应用层: 负责应用软件的应用协议(私有协议)
传输层: 负责数据在网络中按照某种协议进行传输
tcp (transport control protocol)
传输控制协议,是一种面向连接的传输层协议
特点:能够提供一种可靠的通信(保障数据完整、无误、数据无重复)
正因为他能够提供一种可靠的连接:通信前就必须进行
“三次握手”/"三路握手"
三次握手(client server)
1) C 发送一个请求连接 ACK=0, SYN=1
2) S 接收到C的请求以后,进行回复确认 SYN=1, ACK=1
3) C 接收到了 S 的确认,回复 S ACK=1
UDP (user datagram protocol) 用户数据报协议
(类似于 写信 投递邮件)
特点: 是不可靠的无连接的协议,无需三次握手
可以进行高效的大量的数据的传输
网络层:IP 协议,给每一台联网的主机一个 逻辑地址:192.168.1.110 (路由器工作在网络层)
物理层:数据链路层+物理层: 网卡驱动在数据链路层
物理层: 网卡 网线 同轴电缆 交换机
2、网络数据的发送
假如 client 想发送一个 hello 给服务端
应用层:发送hello 或者封装一个 私有协议 ##hello##
传输层: 根据具体的协议 再次进行封装
假如是tcp发送: tcp协议头部 + hello
网络层: IP头部 + tcp协议头部 + hello
物理层: mac地址 + IP头部 + tcp协议头部 + hello
在网络中如何通过一个IP来获取mac地址呢?
ARP 协议
3、路由器的工作原理
工作在网络层
路由表
分配IP地址
openWRT(开源的Linux操作系统)
4、交换机的工作原理
工作在物理层
数据转发, 信号放大
普通的网线最大传输距离是 100米
5、带宽
1s 能够传输的 bit 数
6、IP地址
TCPv4 TCPv6
192.168.1.100 点分十进制表示法
IPv4 地址长度 4 字节 32bit
IPv4的ip地址组成: 网络号 + 主机号 (电话号码 区号+座机号)
IP地址的分类:(5种)
A类 0 网络号(7位) 主机号(24位)
0.0.0.0 ~ 127.255.255.255
B类 10 网络号(14位) 主机号(16位)
128.0.0.0 ~ 191.255.255.255
C类 110 网络号(21位) 主机号(8位)
192.0.0.0 ~ 223.255.255.255
D类 1110 网络号(28位) 多播组号
E类 11110 (留着以后用)27位
7、子网掩码: 255.255.255.0
子网掩码的作用: 确定网络号和主机号在IP地址中占多个bit位
通过子网掩码 能够迅速判断IP地址是属于哪一类地址
8、端口号
一台设备有多个IP
IP地址是标识网络中的主机的,但是 每台主机可能会有多个网络应用程序的。
服务器中也有多个网络应用程序,如何实现指定的 client 和 server进行通信呢?
IP地址一样 MAC地址也一样 只能每一个应用程序 分配一个端口号,来标识特定的 网络应用程序
1、****网络模型
OSI模型 7层:应用层 表示层 会话层、 传输层、网络层、数据链路层 物理层
TCP/IP 模型 4层: 应用层、传输层、网络层、物理层
应用层: 负责应用软件的应用协议(私有协议)
传输层: 负责数据在网络中按照某种协议进行传输
tcp (transport control protocol)
传输控制协议,是一种面向连接的传输层协议
特点:能够提供一种可靠的通信(保障数据完整、无误、数据无重复)
正因为他能够提供一种可靠的连接:通信前就必须进行
“三次握手”/"三路握手"
三次握手(client server)
1) C 发送一个请求连接 ACK=0, SYN=1
2) S 接收到C的请求以后,进行回复确认 SYN=1, ACK=1
3) C 接收到了 S 的确认,回复 S ACK=1
UDP (user datagram protocol) 用户数据报协议
(类似于 写信 投递邮件)
特点: 是不可靠的无连接的协议,无需三次握手
可以进行高效的大量的数据的传输
网络层:IP 协议,给每一台联网的主机一个 逻辑地址:192.168.1.110 (路由器工作在网络层)
物理层:数据链路层+物理层: 网卡驱动在数据链路层
物理层: 网卡 网线 同轴电缆 交换机
2、网络数据的发送
假如 client 想发送一个 hello 给服务端
应用层:发送hello 或者封装一个 私有协议 ##hello##
传输层: 根据具体的协议 再次进行封装
假如是tcp发送: tcp协议头部 + hello
网络层: IP头部 + tcp协议头部 + hello
物理层: mac地址 + IP头部 + tcp协议头部 + hello
在网络中如何通过一个IP来获取mac地址呢?
ARP 协议
3、路由器的工作原理
工作在网络层
路由表
分配IP地址
openWRT(开源的Linux操作系统)
4、交换机的工作原理
工作在物理层
数据转发, 信号放大
普通的网线最大传输距离是 100米
5、带宽
1s 能够传输的 bit 数
6、IP地址
TCPv4 TCPv6
192.168.1.100 点分十进制表示法
IPv4 地址长度 4 字节 32bit
IPv4的ip地址组成: 网络号 + 主机号 (电话号码 区号+座机号)
IP地址的分类:(5种)
A类 0 网络号(7位) 主机号(24位)
0.0.0.0 ~ 127.255.255.255
B类 10 网络号(14位) 主机号(16位)
128.0.0.0 ~ 191.255.255.255
C类 110 网络号(21位) 主机号(8位)
192.0.0.0 ~ 223.255.255.255
D类 1110 网络号(28位) 多播组号
E类 11110 (留着以后用)27位
7、子网掩码: 255.255.255.0
子网掩码的作用: 确定网络号和主机号在IP地址中占多个bit位
通过子网掩码 能够迅速判断IP地址是属于哪一类地址
8、端口号
一台设备有多个IP
IP地址是标识网络中的主机的,但是 每台主机可能会有多个网络应用程序的。
服务器中也有多个网络应用程序,如何实现指定的 client 和 server进行通信呢?
IP地址一样 MAC地址也一样 只能每一个应用程序 分配一个端口号,来标识特定的 网络应用程序
相关文章推荐
- 黑马程序员-Java基础知识预备之Java网络编程
- 网络编程预备知识
- 黑马程序员_JavaSE基础知识总结十八:网络编程
- SDK编程讲座 之 第一讲:预备知识与概念介绍
- java网络编程基础知识
- Java基础知识强化之网络编程笔记22:Android网络通信之 Android常用OAuth登录(获取个人信息)
- 【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇
- 【转】网络编程知识
- java网络编程知识整理
- C语言编程预备知识
- 网络编程的一些知识
- JAVA 网络编程系列----网络编程的基础知识
- 网络编程(1)——基础知识
- 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
- 网络编程知识总结
- 网络编程基础知识学习要点记录
- Java网络编程相关知识铺垫
- 新手上路系列11:网络编程基础知识与服务器搭建
- 初识Java TCP/IP Socket-UDP网络编程知识