학교 공부

[네트워크] TCP/IP 프로토콜

연듀 2021. 9. 5. 16:36

 

IP 주소

네트워크 환경에서 컴퓨터(노드)간 통신하기 위해 각 컴퓨터에 부여된 네트워크 상 주소

- 인터넷 프로토콜(IP) 경로에서 사용되는 주소

- 3번째 계층인 네트워크 계층에서 사용되는 주소

 

일반 사용자가 상위 계층(DNS)에게 데이터를 요청하려면 DNS 이름 확인(서비스 요청)을 요구해야한다.

그 이름에 대한 IP주소를 넘겨 받고 그 IP에 대해서 데이터 통신이 이루어진다.

그 때 비로소 네트워크 계층이 IP 계층이 된다.

 

 

DNS 

DNS란 Domain Name System의 약자이다.

숫자 형식으로 된 ip주소는 사람이 기억하기 힘들어 도메인이 나타나게 되었다. 도메인이란, www.naver.com 처럼 숫자형태의 ip주소를 이름으로 바꾼것이다.

DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발된 시스템이다.

 

 

라우팅

데이터(패킷)들은 목적지 IP에 도착하기 전에 라우터를 거치는데, 이 라우터는 네트워크 계층으로서 데이터의 경로설정을 해준다. 이러한 과정을 라우팅이라고 한다. 

 

 

 

 

 

TCP/IP 구조

 

 

 

 

물리 계층 : 그림에는 안나와 있지만 맨 밑에는 물리 계층이 있다. 물리 계층은 통신 매체로써 유선인 LAN선이 있다.

네트워크 접속 계층 : 데이터 링크 계층(L2계층). 종류로 이더넷이 있는데 와이파이가 이더넷의 무선 버전의 예 이다.

네트워크 계층:

IP 주소가 있음.

(L3계층) IP프로토콜. ICMP는 보조적인 프로토콜이라 무시하자. peer to peer로, 각각의 프로그램에 상응하는 다른 프로그램과 끝과 끝에서 연결할 수 있게 해준다.

전송 계층 :

Port번호가 있음.

TCP(Transmission Control Protocol) -연결형 프로토콜으로 전화처럼 끊기지 않는다. 가장 많이 쓰임

UDP(User Datagram Protocol) -비연결형으로 문자메세지처럼 받으면 끝

응용 계층: 파일 전송(FTP), 전자 메일(e-mail), 네임 서버(DNS), NFS(network file server), HTTP

 

 

 

 

 

 

TCP/IP 환경

 

 

호스트1이 호스트 2로 직접 데이터를 순식간에 전달하는 것 같지만 사실은 아니다.

데이터를 TCP -> IP -> LAN 카드 드라이버로 보내 드라이버가 전기적인 신호를 이더넷으로 흘려보내면 

라우터들이 중개를 하고 호스트2의 LAN 카드 드라이버로 신호를 보내 다시 IP, TCP 계층으로 올린다.

 

 

HTTP, FTP, E-mail등등 과 같은 어떤 프로세스들이 Socket에서 제공하는 API를 써서 프로그램을 작성을 하면,

그 프로그램들은 같은 TCP로 가 구분을 해주기 위해 여러개의 Port Number로 바뀐다.

각각의 Port마다 해당 프로세스들이 존재하는 것이다.

그리고 IP 계층을 통해 드라이버카드, LAN 카드로 가서 전기적 신호를 통해 쭉 전달이 된다.

 

사용자 공간에서 시스템 공간으로 데이터를 요청하는 것을 시스템 콜이라 한다.(socket함수들)

 

 

 

 

 

 

TCP/IP 프로토콜 헤더

 

 

상위에서 하위 계층으로 내려갈 때 그 계층에 해당되는 헤더를 데이터에 붙인다.

그 헤더의 형태는 그림과 같다.

 

IP 헤더에서 가장 중요한 것은 Source Address다.

Source Address(src)는 출발지 IP 주소다.

반대로 Destination Address(dst)는 목적지 IP주소다.

 

라우터들이 src와 dst를 보고 그 목적지를 향해 데이터를 전달한다.