1. 创建套接字:

    协议栈的内部结构、套接字的实体,以及创建套接字的操作过程

  2. 连接服务器:

    “连接”具体是进行怎样的操作,在这个过程中协议栈到底是如何工作的,

    以及客户端和服务器是如何进行交互的。

  3. 收发数据:

    在这个阶段, 协议栈会将从应用程序收到的数据切成小块并发送给服务器。协议栈还需要确认切分出的每个包是否已经送达服务器,对于没有送达的包要重新发送一次。

  4. 从服务器上断开连接并删除套接字:

    断开操作的本质是当消息收发完成后客户端和服务器相互进行确认的过程,但不止于此。

  5. IP和以太网的包收发操作:实际的网络包是如 何进行收发的。
  6. UDP协议收发数据的操作:和TCP的差异,和它存在的必要性。

windows的netstat命令:

包:

2.12 套结字的实体

一个分配的内存空间:内含通信控制信息(用于控制通信的信息),如IP, port, 通信的state

2.13 socket

浏览器向socket程序发出委托,socket创建套接字。

  1. 分配内存
  2. 写入控制信息
  3. 告诉browser这个套接字的描述符(类似内存空间的标签)

2.2 连接server,( 也叫准备工作)

实际就是指收发两端发送数据前的准备工作,包括创建内存,用于临时存放数据。

connect:和server交换控制信息并在套接字中记录下拉,并准备之后的操作。

控制信息有2类:

  • 头部信息:整个通信过程都需要TCP, IP, MAC以太
  • 套接字中的信息:控制协议栈的操作。

2.3收发data

TCP协议也叫做三次握手策略,使用了TCP的flag: SYN, ACK

  1. 发送端首先发送一个带有syn标志的数据包给对方
  2. 接收端收到后,回传一个带有syn/ack标志的数据包,保湿传达确认信息。
  3. 最后发送端再回传一个带有Ack标志的数据包,代表握手结束。

ACK(acknowledgement)

ACK号 = 序号 + 长度

<<网络是怎样连接的>>笔记第2章用电信号传输Tcp/ip数据的更多相关文章

  1. <<网络是怎样连接的>>笔记第6章 request到达Web server, return response to browser

    短短漫长旅程迎来终点. 概览.整体结构. 服务器的协议栈如何接收数据. 服务器解释request message并respond browser 接收response message并显示内容. 6. ...

  2. <<网络是怎样连接的>>笔记第5章 防火墙,缓存服务器

    第5章 服务器防火墙,缓存服务器 部署地点 防火墙结构和原理 通过将请求平均分配给多台服务器来平衡负载 利用缓存服务器分担负载(客户端也可以部署缓存服务器, 缓存服务器用法很多) 内容分发服务(从缓存 ...

  3. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

  4. 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止

    TCP是一个面向连接的协议.不管哪一方向还有一方发送数据之前.都必须在两方之间建立一条连接.这样的两端间连接的建立与无连接协议UDP不同.UDP向还有一端发送数据报时,无需不论什么预告的握手. 1.建 ...

  5. com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”

    检查SQL Server Configuration Manager 确定实例名为"SKYSQLEXPRESS"下的TCP/IP已经开启了: sql2014配置(系统为Window ...

  6. 《TCP/IP具体解释》读书笔记(22章)-TCP的坚持定时器

    TCP通过让接收方指明希望从发送方接收的数据字节数(即窗体大小)来进行流量控制. 假设窗体大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗体变为非0为止. ACK的传输并不可靠,也就是说, ...

  7. <<网络是怎样连接的>>笔记第一章browser生成message

    网络:由负责搬运数字信息的机制 + 浏览器和服务器这些网络应用程序. web->协议栈,网卡->交换机,路由器->接入网,网络运营商->(防火墙,缓存服务器)->web服 ...

  8. 【网络】<网络是怎样连接的>笔记

    [一] 浏览器 http://user:pwd@hosturl:port/dir/of/file 基本思路: 1.1 生成http请求信息 包含“对什么”“进行怎样的操作”两个方法.一般常用操作是GE ...

  9. 《TCP/IP具体解释》读书笔记(21章)-TCP的超时与重传

    TCP提供可靠的运输层. 它使用的方法之中的一个就是确认从还有一端收到的数据.但数据和确认都有可能会丢失.TCP通过在发送时设置一个定时器来解决这样的问题.假设当定时器溢出时还没有收到确认,它就重传该 ...

随机推荐

  1. intelliij jdea 的file没有setting的解决方法

  2. Linux环境下安装Redis并完成测试(已验证)

    准备工作: 本人测试环境:Win7 xshell远程登录Linux Linux: ubuntu 软件包:redis-3..2.6.tar.gz (Linux下redis安装包) =========== ...

  3. SVN创建主干,分支、合并分支

    1.创建主干(trunk) 本文承接上文部分内容:http://www.cnblogs.com/dadonggg/p/8383696.html:部分不明,可以访问这篇文章. 当我们创建完代码仓库后,创 ...

  4. 170523、快速提升你 MySQL 数据库的段位

    MySQL 数据库知识脉络,大致可以分为四大模块: ● MySQL 体系结构: ● MySQL 备份恢复: ● MySQL 高可用集群: ● MySQL 优化. 从四大模块中,抽离7个部分给大家做分析 ...

  5. Java中的文件和流相关知识

    1. File File类可以使用文件路径字符串来创建File实例,该文件路径可以是绝对路径或相对路径 File类的list()方法中可以接收一个FilenameFilter参数,通过该参数可以只列出 ...

  6. HDU Palindrome subsequence(区间DP)

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/Oth ...

  7. sql 中如何将返回的记录某一条置顶

    将table1中id 为2的记录置顶select * from table1order by case when id='2' then 0 else 1 end 例子:将已发布的置顶,status  ...

  8. Oracle等待事件之Enqueue(锁)

    1.产生原因 表示与内部队列机制相关的等待,例如对保护内部资源或者组件的锁的请求等,一种并发的保护机制,该等待意味着在访问同样的数据库资源时需要等待其他会话已经获取的锁. 2.确定产生问题的对象 死锁 ...

  9. mysql db imported into mongodb

    desc cwd_user show columns from cwd_user select COLUMN_NAME from information_schema.columns where ta ...

  10. python面向对象(类的成员及类方法)

    类的普通成员 字段 方法 属性 类的高级成员 静态字段 静态方法 属性方法   类方法 类成员修饰符 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中, ...