네트워크 층에 해당됨
인터넷을 활용하는 거의 대부분의 시스템이 IP를 이용
IP의 역할은 개개의 패킷을 상대방에게 전달하는 것
패킷을 상대방에게 전달하기 위해서는 여러 요소가 필요
-> 그 중에서도 IP주소와 MAC(Media Access Control Address)라는 요소가 중요
IP 주소는 각 노드에 부여된 주소
를 가리킴, MAC 주소는 각 네트워크 카드에 할당된 고유의 주소
-> IP 주소는 MAC 주소와 결부됨
-> IP 주소는 변경이 가능하지만 MAC 주소는 변경 불가
IP 통신은 MAC 주소에 의존해서 통신을 함
같은 랜선에 있는 경우가 아니라면, 여러 대의 컴퓨터와 네트워크 기기를 중계해서 상대방에게 도착
-> 중계하는 동안 다음으로 중계할 곳의 MAC 주소를 사용하여 목적지를 찾아감
-> 이때 ARP라는 프로토콜 사용
ARP (Address Resolution Protocol)
은 인터넷 상에서 컴퓨터가 서로 주소를 찾기 위해 사용하는 프로토콜
-> 컴퓨터가 IP 주소를 사용하기 위해서는 이를 일반적인 MAC 주소로 변환해야 하는데, ARP는 이를 처리하기 위해 사용
즉 ARP는 수신지의 IP 주소를 바탕으로 MAC 주소를 조사할 수 있음
목적지까지 중계를 하는 도중에 컴퓨터와 라우터 등의 네트워크 기기는 목직지에 도착하기까지의 대략적인 목적지 만을 암
-> 이러한 시스템을 라우팅이라고 함
ex) 택배배송
화물을 보내는 사람은 택배 집배소 등에 화물을 가지고 가면 택배를 보낼 수 있는 것만 알면됨
집배소는 화물을 보내는 곳을 보고 어느 지역의 집배소로 보내는 지만 알면됨
목적지에 있는 집배소는 어느 집에 배달하면 되는지만 알면됨
즉 어떤 컴퓨터나 네트워크 기기도 인터넷 전체를 상세히 파악하고 있지는 못함
전송 계층에 해당(신뢰성 있는 바이트 스트림 서비스
제공)
바이트 스트림 서비스
란 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것을 말함
즉 TCP는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할을 담당
상대에게 확실하게 데이터를 보내기 위해 TCP는 Three Way Handshaking
이라는 방법 사용
-> 이는 패킷을 보내고 끝나는 것이 아니라, 보내졌는지 여부를 상대에게 확인하러 감
-> SYN
와 ACK
라는 TCP 플래그를 사용
-> 플래그는 TCP/IP 프로토콜의 일부(커넥션을 설정하고 유지하기 위해 사용)
일반적으로 SYN 플래그가 전송되면, 수신측은 SYN/ACK 플래그로 응답
-> 이에 대한 응답으로 송신측은 ACK 플래그를 전송
SYN 플래그
는 새로운 커넥션을 요청할 때 사용SYN/ACK 플래그
는 SYN 플래그에 대한 응답으로, 요청받은 커넥션을 수락할 때 사용ACK 플래그
는 SYN/ACK 플래그에 대한 응답으로, 요청받은 커넥션을 수락할 때 사용TCP는 핸드쉐이킹 외에도 통신의 신뢰성을 보증하기 위해 다양한 시스템을 갖춤
응용 계층 시스템에서 도메인 이름
과 IP 주소 이름 확인
을 제공
도메인명에서 IP 주소를 조사하거나, IP 주소로부터 도메인명을 조사하는 서비스를 제공
ex)
사용자가 인터넷에서 "www.google.com"이라고 입력하면, DNS 시스템은 이 주소가 어떤 IP 주소와 연결되어 있는지 찾아서, 우리가 요청한 컴퓨터로 요청을 전달
진행 과정 예시
ex)
이러한 순서대로 리퀘스트 처리결과도 클라이언트에게 반환됨
URI는 인터넷 상에 존재하는 자원(예: 웹페이지, 이미지, 비디오 등)을 식별하기 위해 사용되는 식별자
URL은 자원이 위치한 주소(장소)를 의미하기 때문에, 인터넷 상에 존재하는 자원을 식별할 수 있음
-> URI는 자원을 식별할 수 있는 주소뿐만 아니라, 자원을 식별할 수 있는 이름, 아이디 등 여러 종류의 식별자를 포함할 수 있음
-> URL는 URI의 서브셋
URI의 첫 부분은 스키마(scheme)
라고 하며, 이는 자원이 어떤 프로토콜을 사용하여 접근할 수 있는지를 의미
URI에는 필요한 정보 전체를 지정하는 완전 수식 절대 URI or URL
과 상대적 위치를 나타내는 상대 URL
이 있음
ex) 절대 URI 포맷
http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1
http:// -> 스키마
user:pass -> 자격정보(크리덴셜)
www.example.jp -> 서버 주소
80 -> 서버 포트
/dir/index.htm -> 계층적 파일 패스
uid=1 -> 쿼리 문자열
ch1 -> 프래그먼트 식별자
http나 https: 같은 스키마를 사용하여 리소스를 얻기 위해 사용하는 프로토콜을 지시
서버로부터 리소스를 취득할려면 자격정보
가 필요함(유저명과 패스워드 지정 가능하며 옵션임)
절대 URI에서는 서버 주소
를 지정할 필요가 있음(DNS 이름이나, 192.168.1.1과 같은 아이피 주소 지정)
서버 포트
: 서버의 접속 대상이 되는 네트워크 포트 번호를 지정
계층적 파일 패스
: 특정 리소스를 식별하기 위해서 서버 상의 파일 패스 지정
쿼리 문자열
: 파일 패스로 지정된 리소스에 임의의 파라미터를 넘겨주기 위해 쿼리 문자열 사용(옵션)
프래그먼트 식별자
: 취득한 리소스에서 서브 리소스를 가리키기 위해 사용