对tcp/ip 的一些疑问&理解&总结

socket 的理解

先谈谈个人对tcp/ip协议栈的理解

tcp/ip 协议栈负责数据的封装,发送,接收,解封装,分发到应用程序

tcp/ip 协议栈是参照网络五层模型,根据RFC×××网络规范,实现的系统程序,提供网络服务

端口的理解

为啥引入端口

在网络通信过程中,需要唯一识别通信两端的端点,就是使用端口识别运行于某主机中的应用程序。如果没有引入端口,则只能通过 进程号进行识别。进程号是系统动态分配的,不同的系统会使用不同的进程标识符,应用程序在运行之前不知道自己的进程号,如果需要运行后再广播进程号则很难 保证通信的顺利进行。而引入端口后,就可以利用端口号识别应用程序,同时通过固定端口号来识别和使用公共服务,如HTTP和FTP等。

* 一个端口对应一个网络应用,一个应用可占据多个端口 *

我原来有这样的疑惑:

编写网络程序,首先,调用bind(sockfd,server_addr,length) 将某个socket 绑定到某个端口;

然后,你调用accept(sockfd,sock_addr_client,length),得到一个新的链接socket;

那么,在调用bind时,是否意味着sockfd 已经在不断接测是否有新的链接请求,那么它不就一直在占用这端口了吗,数据的接收和发送的套接字是通过哪个端口进行工作的?是否工作在另一个端口?

看这篇blog

我谈谈个人的理解:

bind()调用后的套接字的结构体,填充着服务端的ip和port;

accept调用后,获取到客户端的ip和端口;

tcp/ip 通讯在传输层网络层的传输的目地全部获取到

socket 是对TCP/IP协议栈的抽象,不是简单对网络层次的映射

socket本无C/S模型

tcp/ip 没有去规定设计者去这样设计网络框架,这是广大程序员设计的经典模型;

常见C/S,P2P(时常会有一个资源发现点)

原始套接字 & 高级套接字 & 标准套接字

  • tcp 套接字,udp套接字为标准套接字,与传输层打交道;
  • 原始套接字,与IP网络协议栈打交道,利用原始套接字构建特定类型的TCP或者UDP的分组
原始套接字 标准套接字 高级套接字
socket(AF_INET,SOCK_RAW,proctal) socket(AF_INET,SOCK_STREAM ‘or’ SOCK_DGRM,0) socket(AF_UNIX,SOCK_STREAM ‘or’ SOCK_DGRM,0)
时间: 2024-08-07 08:39:20

对tcp/ip 的一些疑问&理解&总结的相关文章

TCP/IP 网络编程的理解

一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议 对应于应用层 tcp协议 对应于传输层 ip协议 对应于网络层 三者本质上没有可比性. 何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要解决数据如何在网络中传输:而HTTP是

TCP/IP协议理解

TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议. 单从TCP/IP协议这个名称看,好多人误以为它是一个协议.其实TCP/IP并不是一个协议,而是一个协议族,这个族里面括很多协议,其中比较主要的是TCP协议和IP协议,所以简称为TCP/IP协议. TCP/IP协议由4层组成,从下到上分别是,网络接口层,网络层,传输层,应用层. 这里有的朋友可能会有疑问,开放系统互联参考模型(OSI)不是有

理解TCP/IP协议

TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议. 单从TCP/IP协议这个名称看,好多人误以为它是一个协议.其实TCP/IP并不是一个协议,而是一个协议族,这个族里面括很多协议,其中比较主要的是TCP协议和IP协议,所以简称为TCP/IP协议. TCP/IP协议由4层组成,从下到上分别是,网络接口层,网络层,传输层,应用层. 这里有的朋友可能会有疑问,开放系统互联参考模型(OSI)不是有

关于tcp/ip的理解

关于tcp/ip的深入理解是学习端口转发,socket编程重要依据. 应用层                                  Data 传输层                                  Data|源端口 目标端口 网际层                                  Data|源端口 目标端口|源ip 目标ip 接口层                                  Data|源端口 目标端口|源ip 目标ip|源m

小故事理解TCP/IP连接时的三次握手

在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接,示意图如下: 下面通过一个小故事简单理解一下这三次握手的具体含义: 一天,小客(客户端)准备去小服(服务器)家去送礼(准备与服务器进行连接),当走到小服家门口发现,小服家大门紧锁, 然后便高喊,"小服,你把门开开(尝试与服务器简历连接),我是小客(发送同步序列编号Synchronize Sequence Numbers ,确认身份信息)",此时,小客进入等待小服回应的状态(客户端进入SYN_SEND),(由此实现双方第一次

socket,TCP/IP的理解

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族.不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中 应用层:TFTP,HTTP

理解socket与tcp/ip编程相关函数

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket接口. Socket接口设计者最先是将接口放在Unix操作系统里面的.如果了解Unix系统的输入和输出的话,就很容易了解Socket了.网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的S

对TCP/IP,socket,HTTP的理解

今天有同事问我TCP/IP,socket,HTTP三者的关系,说半天同事也没理清三者的关系. 我想了下,用下面的比喻简单的类比一下吧. 可以把TCP/IP理解为公路和交规,socket对应物流公司,http对应发货人和收货人. 汽车要送货,就必须在公路上走,必须得守交规. socket只关心把东西从一个地方送到另一个地方.对送的是什么并不感兴趣. http就是在收到货物后的处理了,货物如何处理是发货方和收货方的事,跟物流公司没有关系.

转_结合Wireshark捕获分组深入理解TCP/IP协议栈

转自: http://blog.chinaunix.net/uid-9112803-id-3212207.html 摘要: 本文剖析了浏览器输入URL到整个页面显示的整个过程,以百度首页为例,结合Wireshark俘获分组进行详细分析整个过程,从而更好地了解TCP/IP协议栈. 一.俘获分组 1.1 准备工作 (1) 清空浏览器缓存 首先清空Web浏览器的高速缓存,确保Web网页是从网络中获取,而不是从高速缓冲取得[1].谷歌浏览器,Options --> Under the Hood -->