지우너
네트워크-기본 이론 본문
김영한의 실전 자바 - 고급 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)이 포함돼서 나간다.