본문 바로가기

Computer Science/네트워크 (Network)12

네트워크 | TCP/IP Updated 모델 (5계층 모델) 이전에 TCP/IP 모델 이론에 대해서 공부한 적이 있다.네트워크 모델 | (1) OSI 모델, TCP/IP 모델 개요네트워크 모델 | (5) 데이터 단위와 흐름 이해하기<a style="color: #0070d1;" href="https://hyuga.tistory.. 2024. 1. 6.
AWS 클라우드 서비스 교육 필기 AWS General Immersion Day 포지션 소개 Solution Architects: 엔터프라이즈에서 서비스 런칭할 때 AWS 상 아키텍쳐 조언 Technical Account Manager: 기업에서 발생하는 각종 이슈들 조언 AWS 글로벌 인프라 대체로 가까운 리전, 가용영역(AZ)에 서비스 연결 하나의 가용영역(AZ)이 뻑나도 문제 없게 설계. 데이터센터 뿐 아니라 글로벌 네트워크도 갖고 있음. 가용 영역(AZ)은 AWS 리전에서 중복 전력, 네트워킹 및 연결을 지원하는 하나 이상의 개별 데이터 센터입니다. AZ를 사용하면 단일 데이터 센터보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있습니다. 서브넷에서 실행되는 애플리케이션을 여러 A.. 2024. 1. 4.
네트워크 모델 | (6) TCP/IP 데이터 흐름 더 깊게 이해하기 (feat. Buffered I/O) 앞에서(네트워크 모델 | (5) 데이터 단위와 흐름 이해하기) TCP 통신에서의 데이터 흐름에 대한 큰 그림을 그려보고, 각 단계별 데이터를 뭐라고 부르는지 알아보는 시간을 가졌었다. 이번에는 이 큰 그림의 세부내용을 구체화해보는 시간을 가져보자. 데이터가 계층을 넘나드는 과정을 디테일하게 그리려면, 우선 Buffered I/O가 무엇인지 알아야 한다. Buffered I/O Buffered I/O는 데이터를 메모리의 버퍼에 임시로 저장하고, 버퍼가 가득 차거나 빌 때까지 기다린 후 데이터를 전송하는 방식이다. 애플리케이션 계층에서 TCP가 있는 전송 계층으로, 그리고 다시 네트워크 계층으로.. 이렇게 데이터를 내려줄 때 버퍼를 사용하여 데이터를 전송하고 수신한다. 잠시 버퍼에 담아두고, 살짝 마사지 해.. 2023. 11. 21.
네트워크 프로그래밍 | Proxy Lab | echo 서버 구현 (소켓 프로그래밍 공부) echo 서버 - 전체 작동 구조도 server 파일 분석 echoserveri.c 전체 코드 중간중간에 혼자 테스트할 목적으로 쓴 printf가 있으니, 그냥 무시하면 된당 #include "csapp.h" // echo: 클라이언트 요청을 처리함 void echo(int connfd); // main: 서버 프로그램의 entry point int main(int argc, char **argv) { // 리스닝 및 연결용 파일 디스크립터 선언 int listenfd, connfd; socklen_t clientlen; struct sockaddr_storage clientaddr; /* 모든 주소를 위한 충분한 공간 */ char client_hostname[MAXLINE], client_port[M.. 2023. 11. 21.
네트워크 모델 | (5) 데이터 단위와 흐름 이해하기 지금까지 네트워크 아키텍처들 (LAN, WAN, 서버-클라이언트 구조) OSI 모델, TCP/IP 모델이 무엇인지 어떤 주소체계를 통해서 데이터 패킷이 목적지로 향할 수 있는지 (포트, IP, MAC) IP 프로토콜의 한계를 보완한 TCP, UDP 프로토콜이 무엇인지 프로세스가 네트워크 기능을 사용할 수 있도록 해주는 소켓이 무엇인지 를 공부했다. 이번에는 실질적으로 1) 데이터라는 게 어떤 형태로 전달되며, 2) 어떤 과정으로 전송되는지를 추가하여 네트워크 | 네트워크를 이해하는 큰 그림에서의 3차원 이미지를 마저 완성해보면 좋을 것 같다. TCP/IP 계층별 데이터 단위 우리 애플리케이션에서 출발한 데이터가 네트워크 세상으로 빠져나가면서 점차 어떤 모습으로 바뀌게 되며, 왜 그렇게 되는지, 또 각 단.. 2023. 11. 20.
네트워크 모델 | (4) 소켓(Socket)에 대한 이해 소켓(Socket) Socket? 소켓은 네트워크상의 두 프로그램 간의 통신을 위한 엔드포인트로, 소켓 주소 정보를 사용하여 데이터 송수신을 관리하는 프로그래밍 인터페이스이다. 네트워크 기능을 사용하려는 애플리케이션(프로세스)은 소켓을 열어서, 소켓 인터페이스를 통해 네트워크 작업을 수행한다. 소켓 자체는 TCP나 UDP에 종속된 개념이 아니다. 네트워크 통신을 할 때, 각 통신주체가 데이터를 주고 받는 출발지와 도착지 역할을 하는 대상을 통칭한다. 다만 현대 네트워킹에서는 TCP, UDP가 흥하면서 TCP, UDP 프로토콜을 기반으로 하는 소켓을 주로 쓰고 있고, 때문에 소켓 == TCP 소켓, UDP 소켓으로 통용되는 감이 없지않아 있다. 소켓의 종류 네트워크 통신을 위한 소켓을 Stream 소켓과 .. 2023. 11. 19.
네트워크 모델 | (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.