본문 바로가기

네트워크7

네트워크 모델 | (6) TCP/IP 데이터 흐름 더 깊게 이해하기 (feat. Buffered I/O) 앞에서(네트워크 모델 | (5) 데이터 단위와 흐름 이해하기) TCP 통신에서의 데이터 흐름에 대한 큰 그림을 그려보고, 각 단계별 데이터를 뭐라고 부르는지 알아보는 시간을 가졌었다. 이번에는 이 큰 그림의 세부내용을 구체화해보는 시간을 가져보자. 데이터가 계층을 넘나드는 과정을 디테일하게 그리려면, 우선 Buffered I/O가 무엇인지 알아야 한다. Buffered I/O Buffered I/O는 데이터를 메모리의 버퍼에 임시로 저장하고, 버퍼가 가득 차거나 빌 때까지 기다린 후 데이터를 전송하는 방식이다. 애플리케이션 계층에서 TCP가 있는 전송 계층으로, 그리고 다시 네트워크 계층으로.. 이렇게 데이터를 내려줄 때 버퍼를 사용하여 데이터를 전송하고 수신한다. 잠시 버퍼에 담아두고, 살짝 마사지 해.. 2023. 11. 21.
네트워크 모델 | (3) TCP, UDP 프로토콜 소개 TCP와 UDP는 IP 위에서 동작하며 인터넷 프로토콜 스위트 중 핵심 프로토콜이다. TCP/IP 모델에서는 L4 Transport 계층에 해당하는 프로토콜이다. 이들은 IP의 한계를 보완하거나, 더욱 업그레이드하기 위한 목적으로 설계되었으며, IP를 포함하고 있는 Network 계층 위 Transport 계층의 주요 요소로 올라가게 되었다. IP의 한계 IP만 믿고 모든 네트워크 통신을 하기에는 한계가 있다. 바로 데이터 전송을 신뢰할 수 없다는 것이다 IP의 한계점은 다음과 같다: Data loss 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송되고, 클라이언트는 이를 모르는 경우 비신뢰성: 네트워크 경로 중간에 패킷이 사라지는 경우 (이상한 경로로 빠져버렸다든지..) Out .. 2023. 11. 18.
네트워크 모델 | (2) 네트워크 주소 체계(Port, IP, MAC), IP 라우팅 우리는 네트워크 기능을 인터넷 환경 위에서 구현(또는 활용)하는 사람들이다. 때문에 TCP/IP 기반으로 네트워크를 이해하는 게 좋다고 생각한다. (TCP/IP는 인터넷에 포커싱한 실용적 모델이므로) 왜 우리가 네트워크 자체가 아니라 네트워크 중 하나인 인터넷에 집중을 해야하냐면 ?? -> 보통 사람들은 '네트워크 == 인터넷'이라고 착각할 정도로 인터넷이 표준이 되었으니까 !! 거의 모든게 인터넷 위에 있고, 우리는 인터넷 위에서 생활하고있다고 해도 과언이 아니다. 어쨌든, 이번에는 네트워크 통신을 할 때 한 곳에서 보낸 데이터가 목적지를 찾아가는지를 살펴보고자 한다. 그 과정에서 IP(Internet Protocol)이라는 인터넷 네트워크를 위해 설계된 프로토콜도 다루게 된다. 어떻게 주소를 찾아갈.. 2023. 11. 18.
네트워크 모델 | (1) OSI 모델, TCP/IP 모델 개요 네트워크의 대표적인 구조적 특징을 알아봤으니, 이번에는 이 구조 위에서 어떤 방식으로 네트워크 서비스가 동작하는지를 알아볼 차례!! 네트워크 모델 네트워크 모델은 네트워크 통신의 기본 원리와 구조를 설명하는 이론적인 프레임워크이다. 가장 널리 알려진 두 가지 모델은 OSI(Open Systems Interconnection) 7계층 모델과 TCP/IP 4계층 모델이다. 왜 사람들은 이 두 가지 모델을 통해 네트워크 공부를 시작할까? 계층적 구조: 이 모델들은 네트워크 기능을 독립적인 기능을 수행하는 각각의 계층으로 나누어 설명한다. 이는 복잡한 네트워크 시스템을 더 쉽게 이해할 수 있게 해준다. 또한 네트워크 문제를 진단하고 해결하는 데 있어서 계층적 접근 방식은 매우 유용하다. 어플리케이션부터 시작해.. 2023. 11. 18.
네트워크 아키텍처 | (2) LAN, WAN, 클라이언트-서버 구조 네트워크 노드(= 호스트)와 링크가 무엇인지 한번 살펴봤고, 이제 이를 기반으로 대표적인 네트워크 아키텍처들을 조금 더 이해해보자👍 LAN & WAN (아키텍처 of 범위) 이름 설명 LAN (Local Area Network) 가까운 지역을 서로 연결한 지역 영역 네트워크. 한 건물이나 캠퍼스 등에서 주로 쓰고, 스타크래프트 게임 할 때 많이들 접했을 단어이다. WAN (Wide Area Network) 멀리있는 지역을 서로 연결한 광역 네트워크. 국가, 대륙 급의 넓은 범위를 커버한다. LAN: 이더넷 이더넷은 한 개의 방, 하나의 층 등 매우 국소적으로 사용한다. 이더넷 세그먼트는 다음과 같이 구성되어 있다. 허브들이 호스트들을 연결하고, 이들은 전선들로 연결된다. 만약 A ~ Z 호스트가 있다.. 2023. 11. 17.
네트워크 아키텍처 | (1) 네트워크 노드, Host, 링크 네트워크 | 네트워크를 이해하는 큰 그림 에서 네트워크를 노드와 링크로 이해할 수 있다고 했는데, 그럼 정보를 주고받는 각 장치나 포인트인 노드, 그리고 노드들을 연결해주는 링크는 현실 세계의 무엇을 가리키는 말일까? 네트워크 노드 vs 호스트(Host) 네트워크 노드는 네트워크에 연결된 모든 장치를 의미한다. 컴퓨터, 스위치 라우터, 프린터, CCTV 등등.. 무수히 많다. 그 중에서도 컴퓨터 혹은 서버는 호스트(Host)라고 부른다. 따라서 호스트를 정의하자면, 컴퓨터이면서 동시에 네트워크에 연결되어 있는 대상을 말한다. 근데 호스트라고 다 같은 놈이 아니다. 네트워크 세계에서 데이터를 받고 보내기 위해 서있는 애들 중에서는 말 그대로 네트워크 기능을 이용하기 위한 친구가 있고, 네트워크가 전송되는 .. 2023. 11. 16.
네트워크 | 네트워크를 이해하는 큰 그림 네트워크란? 네트워크는 전자장치들이 서로 정보를 주고 받을 수 있도록 연결한 시스템이다. 하나의 로컬 컴퓨터가 독자적으로만 작동하면, 이 컴퓨터의 활용도는 컴퓨터 자체의 리소스와 직접 input 해주는 데이터에 제한될 것이다. CSAPP 초반에 네트워크 또한 하나의 입출력 장치로 볼 수 있다는 문구가 있다. 로컬 컴퓨터가 네트워크에 연결되면 이는 하드웨어의 제약을 넘어 다른 공간, 다른 객체의 데이터와 리소스까지 활용할 수 있게 되며, 실시간 통신까지 가능하게 된다. 엄청난 확장성을 갖게 해주는 강력한 입출력 장치나 마찬가지인 것이다. 네트워크 시스템은 말 그대로 전자장치 간 정보를 주고받을 수 있는 연결된 시스템을 말한다. 사내 내부망도 네트워크이고, 우리가 잘 아는 internet도 네트워크의 일종이.. 2023. 11. 16.