지우너

네트워크-기본 이론 본문

CS/Network

네트워크-기본 이론

지옹 2024. 10. 30. 10:34

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션의 섹션7 네트워크 기본 이론을 정리한 내용입니다.

이 내용은 모든 개발자를 위한 HTTP 기본 지식 강의 영상 중에 네트워크 기초와 관련된 일부 영상을 가져왔다고 함.

 

클라이언트와 서버

클라이언트는 서비스를 요청하는 쪽, 서버는 요청을 처리하여 서비스를 제공하는 쪽

 

인터넷 통신+IP(인터넷 프로토콜)

바로 옆에 친구의 컴퓨터가 있다면 두 대의 컴퓨터에 선을 연결하여 직접 메시지를 보낼 수 있다.

 

그러면 한국에 있는 내가 미국에 있는 친구에게 "Hello World"라는 메시지를 어떻게 보낼 수 있을까.

인터넷 망을 통해 메시지를 전송하게 됨.

 

복잡한 인터넷망에서 친구 컴퓨터를 어떻게 찾지?

내 컴퓨터의 IP주소, 친구 컴퓨터의 IP주소를 알면 지정한 IP주소에 데이터를 전달할 수 있음.

패킷이라는 통신 단위로 데이터를 전달

패킷: 메시지("Hello World") + 내 컴퓨터의 IP주소(출발지 IP 주소) +  친구 컴퓨터의 IP주소(목적지의 IP 주소) + ...

 

클라이언트가 패킷을 전달하면, 서버가 OK패킷을 보냄

 

IP 프로토콜의 한계

친구 컴퓨터가 꺼져 있어도 데이터를 보냄(비연결성)

중간에 패킷이 사라질 수 있음=패킷 소실. 패킷이 순서대로 오지 않을 가능성 있음(비신뢰성)

같은 IP를 사용하는 서버에 통신하는 애플리케이션이 둘 이상(음악 들으면서 웹서핑)이라면? 프로그램 구분을 못 함. 

 

TCP/UDP

 

채팅 프로그램으로 친구에게 Hello World 메시지를 보내는 경우

소켓 라이브러리라는 것을 보통 사용한다.

Hello World라는 메시지에 TCP 정보를 씌움

그리고 거기에 IP와 관련된 데이터를 씌움→IP 패킷이 생성됨

이게 네트워크 인터페이스를 통해 랜카드를 통해서 나갈 때 이더넷 프레임(Ethernet Frame)이 포함돼서 나간다.