学习地址:

https://www.bilibili.com/video/BV1hV411U74y?p=4

https://www.bilibili.com/video/BV1S7411R7kF?p=19

https://www.bilibili.com/video/BV1z4411G7CY?p=3

go os/exec

https://blog.csdn.net/qianghaohao/article/details/96614079

运维负责传输层

TCP/IP协议模型

网上有5层和4层两种说法

5层:

1.物理层

2.数据链路层

3.网络层

4.传输层

5.应用层

一个数据包:传输控制层面只占一部分,数据才占用大部分.



OSI七层协议中,网络层协议:HTTP、DNS、IP、ICMP(因特网控制报文协议)、ARP、RARP、OSPF、IPX、RIP、IGRP

传输层:TCP、UDP;

应用层:FTP TELNET DNS SMTP

在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。

这里有四个互联协议:

网际协议IP:负责在主机和网络之间寻址和路由数据包。

地址解析协议ARP:获得同一物理网络中的硬件主机地址。

网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。

互联组管理协议IGMP:被IP主机拿du向本地多路广播路由器报告主机组成员。

数据封装,解封装,数据传输过程



OSI TCP/IP协议封装模型

OSI TCP/IP协议数据的解封装过程

抓包:

网络传输效率

seq:随机序列号

ack:确认(期望)序列号

确认序列号(ack)是上一个包的随机序列号(seq)

TCP/IP协议的三次握手和四次握手

三次握手

抓包tcp/ip的包 :

观察三次抓包

TCP握手协bai议 :在TCP/IP协议中,TCP协议提供可靠的连接du服务zhi,采用三次握手建立一个连接dao。

1、第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)

2、第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

3、第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

所谓的三次握手(three times handshake;three-way handshaking)即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。

为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

四次握手

四次挥手



ip地址划分







ip地址的转换

http协议:

request

传参:

GETT 和 POST的区别

  • GET是获取数据,POST是传送数据给服务器
  • GET是url传参,POST是body传参数
  • GET的数据大小显示2K;POST没有理论限制
  • POST相对安全一点,包含机密信息,建议用POST数据提交方式
  • 在做获取数据是用GET,做数据的添加,修改,删除时建议用POST

response

状态码

web服务器

  • Apache:可以运行在Linux,Windows,Mac上
  • IIS:是微软的软件,只能运行在Windows电脑上
  • NGINX:只能运行Linux/Unix

NGINX 不让ip地址访问网站

vim /etc/nginx/nginx.cnf

server{
listen 80 default;
server_name localhost;
access_log off;
location / {
#return 302 https://haimait.com$request_uri;
return 404;
}
rewrite ^(.*) http://www.xxx.com;
}

dns解析

dns出现的原因,ip地址不好记

域名 :baidu.com

dns服务器:baidu.com 119.22.22.22

ftp服务:tcp 21端口

ssh服务:tcp 22端口

telnet:tcp 25端口

dns服务:udp 53端口

smtp:tcp 80端口

http服务: tcp 80端口

https服务:tcp 443端口

tomcat服务:8080端口

mysql服务:tcp,udp 3306端口

redis服务:6379端口

HBASE服务:60010端口

kafka服务:9092端口

zookeeper服务:2181端口

memcached服务:11211端口

mongdb服务:27017端口

dns解析的流程:

查dig是属于哪个包

yum provides dig

网络协议分析与抓包 TCP/IP UDP等的更多相关文章

  1. 网络协议分析之wireshark---抓包使用

    Wireshark基本介绍和学习TCP三次握手 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括ht ...

  2. 网络编程的基本概念,TCP/IP协议简介

    8.1.1 网络基础知识 计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议. 网络编程的目的就是指直接或 ...

  3. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  4. wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍TCP排序方法,分享一个Windows版的TCP排序工具." 在分析协议的过程中,不可避免地需要抓包. 无论抓包条件如何优越, ...

  5. linux 网络协议分析---3

    本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 网络接口层 ...

  6. TFTP网络协议分析---15

    TFTP网络协议分析 周学伟 文档说明:所有函数都依托与两个出口,发送和接收. 1:作为发送时,要完成基于TFTP协议下的文件传输,但前提是知道木的PC机的MAC地址,因为当发送TFTP请求包时必须提 ...

  7. wareshark网络协议分析之DHCP

    声明:本文关于DHCP协议介绍部分摘自百度百科 一.DHCP协议介绍: DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 ...

  8. android 网络编程--socket tcp/ip udp http之间的关系

    网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络 ...

  9. SOCKET,TCP/IP,UDP,HTTP,FTP总结

    一.TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议 ...

  10. ETHERNET数据包格式( IP & UDP & ICMP & ARP )

    ETHERNET数据包格式( IP & UDP & ICMP & ARP ) ETHERNET数据包格式 一.ETHERNET 数据包的协议类型 TYPE 的值为 0x0800 ...

随机推荐

  1. KingbaseES date 数据类型的两种格式

    关于date 数据类型,Oracle 与 PostgreSQL 格式是不同的,Oracle 是 日期 + 时间的类型,而PG 则只有日期.KingbaseES Oracle 模式则同时实现了二者类型, ...

  2. Kingbase Create Type 语句使用

    Kingbase create type类型创建语句 说明: KingbaseES 数据库中,可以通过CREATE TYPE语句定义一种新的数据类型. 有八种形式的CREATE TYPE.它们分别创建 ...

  3. python [pymysql] 操作MySQL数据库

    python [pymysql] 操作MySQL数据库 连接.关闭数据库 def get_conn_(): """ :return: 连接,游标 "" ...

  4. XMIND思维导图工具入门使用方法(常用操作和快捷键)

    基本操作 Tab 置入子项目 ENTER 置入平级项目 CTRL+ALT+F ZEN 专注模式 进阶操作 联系 CTRL+SHIFT+R 内容链接 概要 用括号简要概括要点[界面上部概要选项] 外框 ...

  5. 学习Source Generators之IncrementalValueProvider

    前面我们使用了IIncrementalGenerator来生成代码,接下来我们来详细了解下IIncrementalGenerator的核心部分IncrementalValueProvider. 介绍 ...

  6. 个性化定义多个 Git 托管平台配置

    一.背景说明 本人使用了多个 Git 托管平台,包括 Github.Gitlab 和 Gitee.为了避免提交信息(主要是用户名和邮箱地址)错乱,我希望在向不同的托管平台提交内容时,能够自动设置相应的 ...

  7. 面试官:Redis如何实现延迟任务?

    延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务.也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行. 延迟任务的常见使用场景有以下几个: 定时发送 ...

  8. HarmonyOS课程尝鲜计划,优享特权大礼包

      报名入口:https://developer.huawei.com/consumer/cn/activity/901689042385499023

  9. Python Flask获取iOS的UDID

    测试iOS app时候,我们可以安装以下4种类型的包 : AdHoc                 -- 一般为正式环境验证AppStore             -- 上传AppStore,只有 ...

  10. 力扣15(Java)-三数之和(中等)

    题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j.i != k 且 j != k ,同时还满足 nums[i] + ...