네트워크 세미나 하던도중 사람들도 네트워크 기초를 정리하고 스텝별로 정리를 해볼까 해요
Network 는 건, 여러 컴퓨터나 장치들이 서로 정보를 주고받을 수 있게 연결된 거야. 이게 마치 우리가 친구들과 이야기하듯이, 컴퓨터들도 서로 '소통'을 한다고 생각하면 돼. 그리고 이 연결에는 여러 가지 방식이 있지만, 가장 흔한 건 인터넷을 통한 연결이야.
데이터는 패킷이라는 작은 덩어리로 네트워크를 통해 전송되며, 패킷은 두 부분으로 나뉩니다
출발지 호스트, 목적지 호스트, 기본 프로토콜 등 모든 식별 정보
실제 데이터(예: 일부 HTML 또는 이미지)입니다.
사용자가 상호 작용하는 계층(예: 웹 브라우저)입니다. 컴퓨터 애플리케이션과 서버가 통신하는 데 사용하는 상위 수준의 프로토콜(HTTP, SSL, FTP 등)을 사용합니다.
이건 마치 레스토랑 주방장이 메뉴를 만드는 것과 같아요. "/users"라는 주문이 들어오면 사용자 목록을, "/orders"라는 주문이 들어오면 주문 내역을 제공하는 식이죠. HTTP를 사용해 이런 요청과 응답을 주고받아요.
웹 브라우저와 웹 서버 간의 통신을 위한 애플리케이션 계층 프로토콜입니다.
HTTP는 웹사이트를 방문할 때 사용하는 특별한 언어예요. 마치 레스토랑에서 주문을 하는 것처럼, 브라우저가 서버에게 "이 웹페이지 주세요!"라고 요청하면, 서버는 "여기 있습니다!"하고 웹페이지를 전달해주는 거죠.
이론: 네트워크 통신의 보안을 위한 암호화 프로토콜입니다.
SSL/TLS는 비밀 대화를 나누는 방법이에요. 당신이 친구와 비밀 코드를 만들어 대화하는 것처럼, 컴퓨터와 서버도 아무도 엿듣지 못하게 정보를 암호화해서 주고받는 거예요.
이론: 파일을 전송하기 위한 애플리케이션 계층 프로토콜입니다.
FTP는 인터넷 상의 택배 서비스 같은 거예요. 큰 파일을 안전하게 포장해서 다른 컴퓨터로 보내거나 받을 수 있게 해주죠.
데이터 무결성 검사, 소스 및 대상 포트, 데이터를 패킷으로 분류하는 사양(애플리케이션 계층에서 아직 수행하지 않은 경우)을 포함한 데이터 전송. TCP와 UDP가 가장 일반적인 전송 계층 프로토콜입니다
예시: 소켓 프로그래밍
TCP나 UDP를 사용해 실시간 채팅 앱이나 게임 서버를 만들 수 있어요.
TCP는 편지를 주고받는 것처럼 신뢰성 있는 통신이 필요할 때 써요. 채팅 메시지가 순서대로 정확히 전달되어야 하니까요. UDP는 전화 통화같아요. 빠르게 통신해텍스트야 하지만 약간의 오류는 괜찮을 때, 예를 들어 실시간 음성 채팅에 사용해요.
Internet 계층은 데이터 패킷의 라우팅을 담당하며, IP(Internet Protocol)를 사용하여 패킷을 목적지로 전달합니다.
인터넷이나 모뎀과 같은 물리적 매체를 통해 원시 데이터를 전송하는 방법을 정의합니다.
OSI 모델의 가장 낮은 계층으로, 실제 데이터 비트를 전기 신호, 빛, 또는 전파로 변환하여 전송합니다.
ATIP 라고 일단 생각해요 그리고 실제 저의가 살고 있는 기준으로 예시를 들어볼게요
이것은 마치 편지를 쓰는 것과 같아요. 여러분이 친구에게 보내고 싶은 메시지를 작성하는 단계죠. 예를 들어, 웹 브라우저에서 웹 페이지를 요청하는 것이 이 단계에 해당해요.
이 단계는 편지를 봉투에 넣고 주소를 쓰는 것과 비슷해요. 데이터를 어떻게 보낼지, 어디로 보낼지 결정하죠. TCP나 UDP 같은 프로토콜이 이 일을 담당해요.
이건 우체국에서 편지를 분류하는 것과 같아요. 데이터가 어떤 경로로 가야 할지 결정하죠. IP 주소를 사용해서 데이터 패킷의 목적지를 찾아요.
이제 실제로 편지를 배달하는 단계예요. 전기 신호, 빛, 또는 전파를 통해 데이터를 실제로 전송하죠. 이건 마치 우체부가 실제로 거리를 다니며 편지를 배달하는 것과 같아요.
Host A에서 Host B로 데이터를 보낼 때, 데이터는 위에서 아래로 내려가면서 각 계층을 거칩니다. 애플리케이션에서 시작해서, 전송 계층에서 포장되고, 인터넷 계층에서 주소가 붙고, 마지막으로 물리 계층에서 실제 신호로 변환되어 전송돼요.
Host B에서는 반대로 진행됩니다. 받은 신호를 아래에서 위로 올라가면서 해석해요. 물리 계층에서 받은 신호를 데이터로 변환하고, 인터넷 계층에서 주소를 확인하고, 전송 계층에서 데이터를 재조립한 뒤, 마지막으로 애플리케이션 계층에서 최종적으로 데이터를 처리하죠.
스택의 하위 계층(인터넷/네트워크 및 물리적)은 전송 컴퓨터가 데이터를 어디로 보낼지 파악하는 데 도움을 주고, 상위 계층(애플리케이션 및 전송)은 수신 컴퓨터가 방금 수신한 데이터가 무엇인지 파악하는 데 도움을 줍니다: