Computer Science/네트워크 (Network) (12) 썸네일형 리스트형 네트워크 | TCP/IP Updated 모델 (5계층 모델) 이전에 TCP/IP 모델 이론에 대해서 공부한 적이 있다.네트워크 모델 | (1) OSI 모델, TCP/IP 모델 개요네트워크 모델 | (5) 데이터 단위와 흐름 이해하기<a style="color: #0070d1;" href="https://hyuga.tistory.. AWS 클라우드 서비스 교육 필기 AWS General Immersion Day 포지션 소개 Solution Architects: 엔터프라이즈에서 서비스 런칭할 때 AWS 상 아키텍쳐 조언 Technical Account Manager: 기업에서 발생하는 각종 이슈들 조언 AWS 글로벌 인프라 대체로 가까운 리전, 가용영역(AZ)에 서비스 연결 하나의 가용영역(AZ)이 뻑나도 문제 없게 설계. 데이터센터 뿐 아니라 글로벌 네트워크도 갖고 있음. 가용 영역(AZ)은 AWS 리전에서 중복 전력, 네트워킹 및 연결을 지원하는 하나 이상의 개별 데이터 센터입니다. AZ를 사용하면 단일 데이터 센터보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있습니다. 서브넷에서 실행되는 애플리케이션을 여러 A.. 네트워크 모델 | (6) TCP/IP 데이터 흐름 더 깊게 이해하기 (feat. Buffered I/O) 앞에서(네트워크 모델 | (5) 데이터 단위와 흐름 이해하기) TCP 통신에서의 데이터 흐름에 대한 큰 그림을 그려보고, 각 단계별 데이터를 뭐라고 부르는지 알아보는 시간을 가졌었다. 이번에는 이 큰 그림의 세부내용을 구체화해보는 시간을 가져보자. 데이터가 계층을 넘나드는 과정을 디테일하게 그리려면, 우선 Buffered I/O가 무엇인지 알아야 한다. Buffered I/O Buffered I/O는 데이터를 메모리의 버퍼에 임시로 저장하고, 버퍼가 가득 차거나 빌 때까지 기다린 후 데이터를 전송하는 방식이다. 애플리케이션 계층에서 TCP가 있는 전송 계층으로, 그리고 다시 네트워크 계층으로.. 이렇게 데이터를 내려줄 때 버퍼를 사용하여 데이터를 전송하고 수신한다. 잠시 버퍼에 담아두고, 살짝 마사지 해.. 네트워크 프로그래밍 | 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.. 네트워크 모델 | (5) 데이터 단위와 흐름 이해하기 지금까지 네트워크 아키텍처들 (LAN, WAN, 서버-클라이언트 구조) OSI 모델, TCP/IP 모델이 무엇인지 어떤 주소체계를 통해서 데이터 패킷이 목적지로 향할 수 있는지 (포트, IP, MAC) IP 프로토콜의 한계를 보완한 TCP, UDP 프로토콜이 무엇인지 프로세스가 네트워크 기능을 사용할 수 있도록 해주는 소켓이 무엇인지 를 공부했다. 이번에는 실질적으로 1) 데이터라는 게 어떤 형태로 전달되며, 2) 어떤 과정으로 전송되는지를 추가하여 네트워크 | 네트워크를 이해하는 큰 그림에서의 3차원 이미지를 마저 완성해보면 좋을 것 같다. TCP/IP 계층별 데이터 단위 우리 애플리케이션에서 출발한 데이터가 네트워크 세상으로 빠져나가면서 점차 어떤 모습으로 바뀌게 되며, 왜 그렇게 되는지, 또 각 단.. 네트워크 모델 | (4) 소켓(Socket)에 대한 이해 소켓(Socket) Socket? 소켓은 네트워크상의 두 프로그램 간의 통신을 위한 엔드포인트로, 소켓 주소 정보를 사용하여 데이터 송수신을 관리하는 프로그래밍 인터페이스이다. 네트워크 기능을 사용하려는 애플리케이션(프로세스)은 소켓을 열어서, 소켓 인터페이스를 통해 네트워크 작업을 수행한다. 소켓 자체는 TCP나 UDP에 종속된 개념이 아니다. 네트워크 통신을 할 때, 각 통신주체가 데이터를 주고 받는 출발지와 도착지 역할을 하는 대상을 통칭한다. 다만 현대 네트워킹에서는 TCP, UDP가 흥하면서 TCP, UDP 프로토콜을 기반으로 하는 소켓을 주로 쓰고 있고, 때문에 소켓 == TCP 소켓, UDP 소켓으로 통용되는 감이 없지않아 있다. 소켓의 종류 네트워크 통신을 위한 소켓을 Stream 소켓과 .. 네트워크 모델 | (3) TCP, UDP 프로토콜 소개 TCP와 UDP는 IP 위에서 동작하며 인터넷 프로토콜 스위트 중 핵심 프로토콜이다. TCP/IP 모델에서는 L4 Transport 계층에 해당하는 프로토콜이다. 이들은 IP의 한계를 보완하거나, 더욱 업그레이드하기 위한 목적으로 설계되었으며, IP를 포함하고 있는 Network 계층 위 Transport 계층의 주요 요소로 올라가게 되었다. IP의 한계 IP만 믿고 모든 네트워크 통신을 하기에는 한계가 있다. 바로 데이터 전송을 신뢰할 수 없다는 것이다 IP의 한계점은 다음과 같다: Data loss 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송되고, 클라이언트는 이를 모르는 경우 비신뢰성: 네트워크 경로 중간에 패킷이 사라지는 경우 (이상한 경로로 빠져버렸다든지..) Out .. 네트워크 모델 | (2) 네트워크 주소 체계(Port, IP, MAC), IP 라우팅 우리는 네트워크 기능을 인터넷 환경 위에서 구현(또는 활용)하는 사람들이다. 때문에 TCP/IP 기반으로 네트워크를 이해하는 게 좋다고 생각한다. (TCP/IP는 인터넷에 포커싱한 실용적 모델이므로) 왜 우리가 네트워크 자체가 아니라 네트워크 중 하나인 인터넷에 집중을 해야하냐면 ?? -> 보통 사람들은 '네트워크 == 인터넷'이라고 착각할 정도로 인터넷이 표준이 되었으니까 !! 거의 모든게 인터넷 위에 있고, 우리는 인터넷 위에서 생활하고있다고 해도 과언이 아니다. 어쨌든, 이번에는 네트워크 통신을 할 때 한 곳에서 보낸 데이터가 목적지를 찾아가는지를 살펴보고자 한다. 그 과정에서 IP(Internet Protocol)이라는 인터넷 네트워크를 위해 설계된 프로토콜도 다루게 된다. 어떻게 주소를 찾아갈.. 이전 1 2 다음