ip协议

很全的linux网络编程技巧

我只是一个虾纸丫 提交于 2020-03-17 03:51:39
1. LINUX 网络编程基础知识 1 1.1. TCP/IP 协议概述 1 1.2. OSI 参考模型及 TCP/IP 参考模型 1 1.3. TCP 协议 3 1.4. UDP 协议 5 1.5. 协议的选择 6 2. 网络相关概念 6 2.1. socket 概念 7 2.2. socket 类型 8 2.3. socket 信息数据结构 8 2.4. 数据存储优先顺序的转换 8 2.5. 地址格式转化 9 2.6. 名字地址转化 10 3. socket 编程 13 3.1. 使用 TCP 协议的流程图 13 3.2. 使用 UDP 协议的流程图 24 3.3. 设置套接口的选项 setsockopt 的用法 31 3.4. 单播、广播、组播(多播) 32 1. LINUX 网络编程基础知识 1.1. TCP/IP 协议概述 协议 protocol:通信双方必须遵循的规矩 由iso规定 rpc文档 osi参考模型:(应-表-会-传-网-数-物) è 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip模型4层: 应用层 {http超文本传输协议 ftp文件传输协议 telnet远程登录 ssh安全外壳协议 stmp简单邮件发送 pop3收邮件} 传输层 {tcp传输控制协议,udp用户数据包协议} 网络层 {ip网际互联协议 icmp网络控制消息协议

面试官,求求你,别再问我网络分层了!!!

不打扰是莪最后的温柔 提交于 2020-03-17 03:25:17
上一篇大体给小伙伴介绍一下网络分层的基本概念,以及每层的大体的功能,那么今天我们来看看每层具体的功能是什么?层与层之间又是怎么进行封装关联的? 上一篇: 面试:你真的懂网络分层模型吗?(上) 写在前边 上一篇主要分享了网络分层的基本概念,为什么要进行网络分层?又是如何进行分层?每一层的基本功能是什么?而且对于每一层的的功能细节方面,比如数据包的组成以及每层包含的一些协议的使用都没有细说,那么这一篇文章将会分享网络分层每层中协议等深入讲解。(PS:可能里边有的讲解不正确,还请大佬指出改正) 1、物理层 物理层里边涉及到最多的是硬件底层的一些内容,没有需要过多了解的内容,我们直接看数据链路层。 2、数据链路层 上回讲到数据链路层中规定的“以太网协议”来规定电信号的分组形式,什么是以太网,以太网的数据包是什么样子的? 2.1 以太网协议 以太网规定,每组的电信号就是一个数据包,每个数据包我们可以成为“帧”。每帧的组成是由标头(Head)和数据(Data)组成。 那么你会问,标头里有什么信息?Data 数据又会存放写什么?为什么分为两部分?放在一块不好吗? 1、标头 为什么传输数据会有标头,我们想呀,在传输数据的时候,接收端怎么判断是不是给自己发送的,那么就只取出标头来进行判断。 数据包的标头中通常会存放一些有关数据包的说明、发送者是谁、接受者又是谁等相关识别信息。 标头的长度固定为 18

TCP/IP协议分析

你说的曾经没有我的故事 提交于 2020-03-17 02:11:22
文章目录 TCP/IP参考模型 应用层 主机到主机层 因特网层 利用TCP/IP参考模型分析数据传输过程 可靠的TCP TCP概述 TCP报文结构 主机到主机层 TCP三次握手 TCP四次挥手 滑动窗口机制 停止等待协议 拥塞控制 冒险的UDP UDP概述 UDP报文结构 TCP/IP参考模型 应用层 HTTP 80 超文本传输协议,提供浏览网页服务 Telnet 23 远程登陆协议,提供远程管理服务 FTP 20、21 文件传输协议,剔红互联网文件资源共享服务 SMTP 25 简单邮件传输协议,提供互联网电子邮件服务 POP3 110 邮局协议,提供互联网电子邮件服务 TFTP 69(UDP)简单文件传输协议,提供简单的文件传输服务 主机到主机层 TCP UDP TCP与UDP的对比 传输控制协议(TCP) 用户数据报协议(UDP) 面向字节流 面向报文 面向链接 无连接 可靠传输 尽力而为的传输 支持流控及窗口机制 无流控及窗口机制 HTTP、FTP等 TFTP、DNS、DHCP等 因特网层 负责将ip报文从源端发送到目的端 定义逻辑地址(IP地址) 负责数据包的寻径和转发 IP包 首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。 利用TCP

OSI参考模型与TCP/IP协议

帅比萌擦擦* 提交于 2020-03-16 08:46:19
OSI的7层参考模型由低到高分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。如下图: TCP/IP(传输控制协议/网际协议)分为4层:网络接口层、网络互连层、传输层、应用层。如图: OSI参考模型与TCP/IP之间的关系如图: 来源: 51CTO 作者: wx5e6de0bb1490b 链接: https://blog.51cto.com/14755533/2478628

网络7层架构+TCP/IP原理

怎甘沉沦 提交于 2020-03-12 08:23:40
7 层模型主要包括: 1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率 等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为 1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 2. 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这 一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。 3. 网络层:主要将从下层接收到的数据进行 IP 地址(例 192.168.0.1)的封装与解封装。在这一层工 作的设备是路由器,常把这一层的数据叫做数据包。 4. 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP(传输控制协议, 传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议, 与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这 种方式传输的)。 主要是将从下层接收的数据进行分段进行传输,到达目的地址后在进行重组。 常常把这一层数据叫做段。 5. 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间 发起会话或或者接受会话请求(设备之间需要互相认识可以是 IP 也可以是 MAC 或者是主机名) 6

ping and netstat

梦想的初衷 提交于 2020-03-10 07:25:10
ping 127.0.0.1 是你本地的回环地址! 实际上只要是127.0.0.1到127.255.255.255都是回环地址!都是可以PING检查的! 它能ping通,说明你的TCP/IP协议栈没问题!如果有问题,你就得检查TCP/IP协议栈,或者重新安装它! 你本地IP是检测你的网卡了,检查你网卡工作是否正常! (要不你做个试验,你把网卡禁用,你发现可以ping127.0.0.1,但ipconfig没有ip显示,是因为你的TCP/IP协议栈没问题,但网卡不存在,或者出错,或者禁用了!) 顺便说下推荐的网络检测,排错的顺序与方法: 1.ping 127.0.0.1 先检查TCP/IP协议栈是否正常 2.ping 本地ip 检查你网卡是否工作正常 3.ping 网关地址 检查和网关连接性 4.ping 远程网站 检查远程连接 netstat -h 网络相关的知识 16 来源: https://www.cnblogs.com/zhangjun1130/archive/2009/11/22/1608358.html

网络协议

こ雲淡風輕ζ 提交于 2020-03-09 11:01:08
网络协议介绍 OSI(Open System Interconnect)七层模型:通信的特点是对等通信 从上往下分别为 应用层:为应用程序提供服务,此层应有的网络协议有HTTPS,HTTP,FTP等协议 实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。 表示层:数据格式化,数据加密;表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别 由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。 会话层:建立,管理,维护会话,会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。 会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

旧街凉风 提交于 2020-03-05 18:19:45
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。这是后话,暂且不提 1.1.IP协议头 如图所示 挨个解释它是教科书的活计,我感兴趣的只是那八位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255,也就是因为这个TTL在IP协议里面只有8bit。

Linux_OSI简介和TCP/IP协议(封装与解封装)

六眼飞鱼酱① 提交于 2020-03-04 03:14:29
2020.3.3#千锋逆战班,云计算201# 在千锋“逆战”学习第3天, 我在千锋逆战班学习“网络管理” 今天学到了网络管理。 知道了在Linux系统中如何进行OSL,TCP/IP协议族和进制转换。 拼搏到无能为力,坚持到感动自己。 OSI简介 Open System Interconnection 开放系统互联模型 OSI:7层次结构/功能 应用层: 应用程序/原始数据/ QQ/YY/爱奇艺/吃鸡 表示层:格式/压缩/加密 快速传递 /安全传递 会话层:会话/全双工/半双工 身份信息/电话/对讲机 传输层:分段/重组/端口号 传输效率 网络层: IP地址/寻址/路由 总目标,全球地址 数据连接层:MAC地址/局域网/ 分段目标,局部地址、邮递员 物理层: 传输介质/比特流 电流/光/无线信号/4G/5G OSI模型和TCP/IP模型的区别 OSI:推出的时间早 只有理论,没有实践 TCP/IP:TCP/IP:传输控制协议/互联网协议 美国军方由实践,总结出的理论 当今通信标准 封装和解封装的区别 1.(应用层)用户信息转换为数据,以便在网络上传输 2.(传输层)数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接 3.(网络层)数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输 4.(数据链路层)数据包或数据报转换为帧

深入理解TCP协议及其源代码

£可爱£侵袭症+ 提交于 2020-03-02 22:39:54
1、TCP协议栈从上到下提供的接口 2、 三次握手   结构体变量struct proto tcp_prot指定了TCP协议栈的访问接口函数 1 struct proto tcp_prot = { 2 .name = "TCP", 3 .owner = THIS_MODULE, 4 .close = tcp_close, 5 .pre_connect = tcp_v4_pre_connect, 6 .connect = tcp_v4_connect, 7 .disconnect = tcp_disconnect, 8 .accept = inet_csk_accept, 9 .ioctl = tcp_ioctl, 10 .init = tcp_v4_init_sock, 11 .destroy = tcp_v4_destroy_sock, 12 .shutdown = tcp_shutdown, 13 .setsockopt = tcp_setsockopt, 14 .getsockopt = tcp_getsockopt, 15 .keepalive = tcp_set_keepalive, 16 .recvmsg = tcp_recvmsg, 17 .sendmsg = tcp_sendmsg, 18 .sendpage = tcp_sendpage, 19 .backlog