IP ( Internet Protocol ) , TCP / UDP , PORT

김원종·2023년 7월 4일
0
post-thumbnail

IP 인터넷 프로토콜의 역할은

  • 지정한 IP주소 (IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

IP패킷 정보를 인터넷에 던지면 노드끼리 200.20.200.2 인 IP주소를 찾아면서 서로에게 토스한다! 그럼 200.20.200.2 에서 메시지를 받으면 IP패킷을 생성해서 다시 인터넷에 던지고 100.100.100.1번 인 IP주소를 찾으면서 서로에게 토스하면서 마찬가지로 목적지에 도달한다.

비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    비신뢰성
  • 중간에 패킷이 사라지면??
  • 패킷이 순서대로 안오면??
    프로그램 구분
  • 같은 IP를 사용하는 서버에서 ㅗㅇ신하는 애플리케이션이 둘 이상이면??

  • 대상서버의 상태를 모르고 클라이언트는 IP패킷을 생성해 전달한다

  • 인터넷에서 중간에 목적지를 못찾고 중간에 노드가 종료되어버리면?? 문제가 발생한다!
    자료가 소실 되어도 모른다.

  • 3000byte 가되는 메시지를 보내면 1500byte씩 나눠져서 보내지기 때문에 수많은 노드를 타다보면 순서가 꼬여서 보내려하는 메시지와는 다른 메시지가 상대에게 전달된다.


TCP / UDP

  • 프로그램이 Hello,world라는 메시지를 생성하고 -> SOKET라이브러를 통해전달한다 -> TCP정보를 생성 하고 , 메시지 데이터를 포함한다 -> IP패킷을 생성하고,TCP데이터를 포함한다.
  • 이러한 과정을 캡슐레이션이라고도 한다.

TCP의 특징
전송 제어 프로토콜(Transmission COntrol Protocol)

  • 연결지향 -TCP3 way handshake(가상 연결)
    상대랑 나랑 연결이 됬는지 먼저 해보고 연결을 한다!
    하지만 진짜 연결이 된것이 아니라 논리적으로만 연결이 된것!

  • 데이터 전달보증
    내가 메시지를 보냈는데 패킷이 누락되면 내가 그 사실을 알수있다

  • 순서 보장

  • 신뢰할수 있는 프로토콜

  • 현재는 대부분 TCP를 사용

1.클라이언트에서 서버로 SYN을 보냄
2.서버에서 ACK라는 답을 보냄
3.클라이언트에서도 ACK를 보냄
이렇게 되면 클라이언트도 서버를 믿을수있고 서버도 클라이언트를 믿을수 있다.

1.클라이언트가 데이터를 전송함
2.서버에서 데이터를 받으면 받았다는 값을 보내줌

1.클라이언트가 123순서로 전송함
2.패킷이 도착했을때 순서가 문제가 발생
3.서버가 클라이언트에게 문제가 발생한 패킷부터 다시 전송요청

UDP의 특징

  • 하얀 도화지에 비유한다 ( 기능이 거의 없다 )
  • 연결지향X -TCP3 way handshake X
  • 데이터 전달 보증 X
  • 순서보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 정리
    • 애플리케이션에서 추가 작업이 필요하다
    • IP와 거의 같지만 PORT가 추가되어있다. 체크섬 정도만 추가된다.

PORT

만약 내가 게임도하고 화상통화도하고 웹브라우저도 보고있다면??
어디서 보낸 패킷인지 어떻게 구별을 할까??

TCP/IP패킷에는 출발지IP 와 목적지IP 그리고 출발지 PORT와 목적지 PORT가 있다!!

IP가 아파트라면 PORT는 동호수라고 생각하자!!

PORT는

  • 0~65535 할당 가능
  • 0~1023 : 잘 알려진 포트 , 사용하지 않는 것이 좋다!
    • FTP - 20,21
    • TELNET -233
    • HTTP -80
    • HTTPS -443

DNS사용

DNS서버에 도메인명을 보내면 IP값을 응답해서 웹을 보여준다.

  • IP는 다 기억할수 없다. [ 숫자로만 이루어져서 ]
  • 그러므로 IP를 문자로 변환하여 기억하기 쉽게 해준다.
profile
개린이

0개의 댓글

관련 채용 정보