티스토리 뷰

 인터넷에서 어떻게 통신이 일어나는지 보며 IP, TCP, UDP, PORT, DNS에 대해 알아볼 것이다.

 

왜 우리는 웹사이트를 그냥 만들고 싶을 뿐인데 네크워크 공부를 해야하는가?

웹 http도 네트워크 망안에서 이뤄지기 때문에 알 필요가 있다 

클라이언트가 서버 옆에 그냥 붙어있다면 보낸뒤에 그냥 받으면 될텐데, 우리는 지구 저 반대편 친구에게도 메시지를 보내는 현시대를 살고 있기에, 중간 인터넷망을 알고있어야한다.

그럼 우리는 공부하기에 앞서 컴퓨터와 컴퓨터간의 소통은 어떤 규칙과 방법을 통해 통신이 일어날까? 

일단 IP 부터 알아보자. 


IP 란?

internet protocol 로 주소를 의미한다. 

데이터 통신은 지정한 ip 주소를 통해 해당 데이터 전달하지만

그냥 전달하는 것이 아닌 페킷이라는 통신 단위(규칙)로 데이터를 전달한다. 

 

---패킷 ---

출발 100 .100. 100. 1

목적 200. 200. 200. 2

hello, world ! 

-------------

 

그러나 IP 만 사용하게 된다면 통신에 아래와 같은 문제가 생긴다.   

 

IP 프로토콜의 한계 

1. 비연결성

- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.

 

2. 비신뢰성

- 중간에 패킷이 사라진다면? , 패킷이 순서대로 오지 않는다면? 문제가 생긴다. 

 

3. 프로그램 구분

- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면? 문제가 생긴다.

 

 


그렇기에 이 문제를 해결할 TCP UDP 를 알아보고자한다. 

일단 간단하게 인터넷 프로토콜 스텍의 4계층을 보면 아래와 같다. 

 

애플리케이션 계층 - HTTP , FTP
전송계층 - TCP, UDP
인터넷 계층 - IP
네트워크 인터페이스 계층 

 

프로토콜 계층 순서대로 이루어진다.(위에서 아래로 )

1. 프로그램이 Hello, World 메시지 생성

2.  SOCKET 라이브러리를 통해 전달

3. TCP 정보 생성, 메시지 데이터 포함

4. IP 패킷 생성, TCP 데이터 포함 (출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보,,,) 

 

쉽게 말하면

이 IP란 것에 TCP,UDP를 붙여 보안역할을 한다고 보면 된다. 

TCP 란? 

전송 제어 프로토콜로 신뢰할 수 있으며 UDP와 TCP중  현재는 대부분 TCP 를 사용한다.

 

TCP 의 특징

-연결지향

연결을 한 뒤에 전송을 한다. 

 

-데이터 전달 보증

페킷이 누락되면 확인 할 수 있다. 

 

-순서보장

 1,2,3 보냈지만 1,3,2로 받았다면

2부터 다시보내라고 요청한다 


위와 같은 TCP의 특징을 살려 데이터를 주고받는데 그 방법이 TCP 3way handleshake 다. 

 

TCP 3 WAY handshake 

다음과 같은 통신방법을 통해 물리적으로 연결된 것이 아닌 논리적으로 연결됨을 보장한다 . 

1. SYN (접속 요청)              컴 1 ㅡ>  컴 2

2. SYN + ACK  (접속요청, 요청 수락)      컴1 <ㅡ 컴 2

3. ACK (요청수락)          컴 1 ㅡ> 컴 2

4. 데이터 전송      

 

서로 데이터를 주고 받을지에 대해 요청과 수락을 

물리적으로 연결된 것이 아닌 논리적으로 연결됐다!


UDP란?

사용자 데이터그램 프로토콜로 하얀 도화지에 비유하며 기능이 거의 없다.

TCP 와 같이 연결지향, 데이터 전달 보증, 순서보장을 하는 것이 아닌

데이터 전달 및 순서가 보장되지 않지만 단순하고 빠르다. 

IP와 거의 같으며 PORT, 체크섬 정도만 추가되었다.(그래서 애플리케이션에서 추가 작업이 필요하다..)

 


PORT란? 

하나의 PC에서 한번에 둘 이상 PC에 연결해야 한다면?

클라이언트 pc 가 여러개의  곳에 패킷을 보내고 받아야한다. 

이러한 불상사를 해결하기 위해서 

ip에다가 목적지(서버)를 찾는 것이고 port는 애플리케이션을 구분한다고 보면 된다. 

 

같은 IP내에서 두 게임을 할 때 해당 게임의 정보를 전달하고 받을 떄 port를 통해 구분한다

0 ~ 65535 할당 가능

0 1023 잘 알려진 포트 , 사용하지 않는 것이 좋음

 

FTP - 20, 21

TELNET - 23

HTTP - 80

HTTPS - 433

 


DNS란?

IP는  기억하기 어렵다 또한 IP는 변경될 수 있다. 그렇기에 만들어진게 DOMAIN NAME SYSTEM DNS 다. 

전화번호부와 같은 역할로 , 도메인 명을 IP주소로 변환 해주는데 

예시로 우리가  도메인 명으로 google.co, DNS 서버에 요청하면 

응답으로 해당 IP주소를 받아  해당 IP주소에 접속하게된다!

 

참고강의) https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함