차곡차곡 성 쌓기
article thumbnail

본 포스팅은 인프런의 김영한님의 `모든 개발자를 위한 HTTP 기본 웹 지식` 강의를 수강하고 정리한 내용입니다.

 

인터넷 통신

인터넷은 어떻게 통신할까?

  • 인터넷을 거치면서 복잡한 노드들을 통과해야 함

-> IP (인터넷 프로토콜) 도입

 

 

IP (인터넷 프로토콜) 

  • 통신을 위해 각 서버에게 IP 주소를 부여함.
  • 클라이언트도 IP 주소를 부여 받아야 하고, 서버도 IP주소를 부여받아야 함.

IP (인터넷 프로토콜) 역할

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

IP 패킷 정보

  • 출발지 IP, 목적지 IP, 기타...
  • 전달할 정보에 IP 패킷을 감싸서 전달, 전달..

 

IP 프로토콜의 한계

1. 비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송 됨
  • 중간 서버가 갑자기 꺼지면 패킷이 소실 됨. but 소실되었음을 알지 못함.

2. 비신뢰성

  • 중간에 패킷이 사라질 경우, 알 방법 없음
  • 순서 보장 안됨

3. 프로그램 구분X

  • 같은 IP에서 두 개 이상의 프로그램을 사용하면 구분 못함

-> TCP / UDP 도입

 

 

TCP / UDP 

앞선 3가지 문제 해결할 수 있는 프로토콜

 

TCP 패킷 정보

  • 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보..

TCP 특징

전송 제어 프로토콜 (Transmission Control Protocol)

  • 연결 지향 - TCP 3 way handshake(가상 연결) - 연결 보장! 논리적 연결
  • 데이터 전달 보증 -> 데이터 잘 받았음을 보내줌
  • 순서 보장 -> 꼬이면 다시 보내 요청
  • 신뢰할 수 있는 프로토콜

 

TCP 3 way handshake

1.   -->    SYN (접속 요청)

2.  <--    SYN + ANK  (접속 요청, 요청 수락)

3.  -->    ACK (요청 수락)

 

SYN : 접속 요청

ANK : 요청 수락

참고: 3. ACK 와 함께 데이터 전송 가능

 

 

UDP 특징

  • IP 프로토콜과 다른것이 거의 없음
  • PORT , checkSum 추가 됨

 

Port

  • 한 IP에서 두개 이상의 앱이 사용된다면? -> Port 사용
  • IP가 아파트라면 PORT는 호수임

TCP/ IP 패킷

  • 출발지 IP, PORT
  • 목적지 IP, PORT

 

DNS

IP는 기억하기 어려우며, 변경될 수 있다 => DNS 도입

도메인 네임 시스템 (Domain Name System)

 

DNS 사용

1. 도메인 명 (google.com)을 DNS 서버에게 보냄

2. IP 주소로 응답

3. 응답받은 IP 주소로 목적지 서버에 연결

728x90
profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 "좋아요" 해주세요!