
Networking What is a Network? 네트워크란? 컴퓨터 간(ex. client-server. 컴퓨터 네트워크에서는 주로 host라고 부름)의 데이터 전송을 가능하게 하는 인프라 또는 매커니즘이다. 많은 서비스에서 네트워크는 필수적이다. 네트워크를

프로세스 관점에서, 네트워크를 이용하기 위해서는 연결하는 일종의 창구가 있어야 한다. 그리고 그 창구를 통해서 데이터를 read, write 해서 통신한다.그러한 창구를 socket이라고 부른다.여러 프로세스들이 통신하려고 하는 상황이 매우 일반적이기 때문에, 창구,

Socket이란? 소켓은 네트워크 프로그래밍에 있어, 유저와 커널 사이를 연결하는 인터페이스, 즉 추상화 도구이다. 소켓이 있기 때문에, 네트워크를 사용할 때, 굳이 커널 내부의 동작까지 직접 접근하지 않아도 operation을 수행할 수 있다. 이전에도 서술했듯이,
TCP 패킷은 네트워크 스택을 돌며 메타데이터를 채워나가거나, 해석한다. 이번 페이지에서는 네트워크 스택 중 TCP(Transmission Control Protocol) layer에 대해 알아보겠다. TCP Layer 네트워킹 스택과 관련된 레이어는 크게 Da

TX RX routines in Linux TCP Layer
IP layer에 대해 들어가기 전에, 큰 그림을 먼저 설멍하자면, 네트워킹 스택은 다음과 같이 이루어져 있었다. 그림에서 볼 수 있듯이 IP(Internet Protocol) layer은 L3에 해당한다. 이 페이지에서는 IP의 기능과 routine을 설명할 것이다

TX, RX Routines in IP layer
이번 페이지에서는 L2인 Datalink layer에서의 동작에 대해 알아보겠다.사실 layer2 와 디바이스 동작을 완벽히 나눌 수는 없어, 동작에 있어 핵심적인 부분을 위주로 device layer와 설명할 예정.layer2 의 데이터 단위는 frame 이다.net
NIC(Network Interface Card)은 여러 interface(=ports, endpoints)를 가지고 있는 디바이스이다. NIC as a Hardware NIC은 하드웨어다. 내장형, 외장형 존재 PCIe bus로 연결 \*PCIe(Periphera
패킷의 받는 과정에서 NIC가 interrupt를 발생시킨다.패킷을 받는 과정은 다음과 같다.패킷 도착DMA가 RX ring으로부터 패킷 디스크립터 fetchDMA가 패킷을 디스크립터 데이터 부분에 writeNIC가 패킷이 도착해 copy까지 했다고 interrupt
네트워크 성능에 영향을 미치는 요인은 여러가지가 있다.user process (blocking - nonblocking)linux kernel networking stacknetwork 내부 딜레이 등...per interrupt overhead: NIC가 발생시키는