2019.09.05学习整理--网络编程

2019.09.05学习整理

网络协议5层模型

物理层

010101的电信号

数据链路层

把物理层的电信号分组,每一个叫一个数据报/数据帧,每一数据帧分成:报头head和数据data两部分

  • 每一个数据报,都由报头和数据部分
    • 头:固定18个字节,6:发送者地址/6:接收者/6:数据类型
  • mac地址:发送者,接收者地址,就是mac地址
    • 每块网卡都有一个唯一mac地址:12位16进制数表示(前六位是厂商编号,后六位是流水线号)
  • 广播:同一个局域网内通信 ,会出现广播风暴

网络层

-ip :ipv4:32位2进制表示:点分十进制表示 从0.0.0.0到255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6
-子网掩码:通过子网掩码和ip判断两个ip是否处于同一个网段,通过ip地址和子网掩码做按位与运算
​ ip地址: 172.16.10.1: 10101100.00010000.00001010.000000001
​ 子网掩码:255.255.255.0: 11111111.11111111.11111111.000000000
​ 按位与运算:172.16.10.0 10101100.00010000.00001010.000000000
-172.16.10.10/24 包含了ip地址和子网掩码-ip跟mac有转换关系

  • 主机172.16.10.10/24访问172.16.10.11/24
  • ARP协议:广播的方式发送数据包,获取目标主机的mac地址
  • mac地址学习:mac地址和ip地址的映射表
    -第一次接收到就会在ip/mac映射表中添加一条数据{’172.16.10.11“:ddsadfgegsdgsdg}
    -任何一种协议都有头和内容

传输层

tcp协议:
三次握手,四次挥手(重点,看图),连接如何建立,发数据如何保证可靠,断开如何断开,在建立连 接过程中有状态

三次握手


四次挥手

服务的如果看到大量的syn_rcvd状态
dos和ddos攻击:拒绝服务攻击,分布式的拒绝服务攻击
-端口号:端口范围0-65535,0-1023为系统占用端口

udp协议:

​ 发送,不需要响应,所以数据不可靠,(看视频)

端口:

​ 通过ip+子网掩码唯一确定一台设备

​ 通过ip+子网掩码+端口号唯一确定一个软件

半链接池

应用层

应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

应用层功能:规定应用程序的数据格式。

  • 例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
上网流程分析:
    -在浏览器输入www.baidu.com
    -会取dns服务器通过域名解析成ip地址
    -向ip+端口号这个地址发送请求,就会访问到百度的服务器
原文地址:https://www.cnblogs.com/zhangmingyong/p/11466561.html