인터넷 네트워크

Sshu Sshu·2022년 8월 26일
0

HTTP

목록 보기
1/8
post-thumbnail

인터넷 통신

인터넷 통신 : 클라이언트와 서버가 인터넷 망을 통해 서로 통신하는 것

인터넷 통신을 할 때,
클라이언트와 서버가 인터넷 상의 수많은 중간 노드 서버(해저광케이블, 인공위성 등)를
거쳐서 통신하는데 어떤 규칙으로 넘어가는 것일까?


IP(인터넷 프로토콜)

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

  • 지정한 IP주소에 데이터 전달
    (패킷이라는 통신 단위로 데이터 전달)
IP패킷 : 출발지 IP, 목적지IP 등의 정보를 담은 패킷

전송할 데이터를 IP패킷 안에 담아 인터넷 망에 던진다.
클라이언트와 서버가 서로 IP패킷에 데이터를 담아 요청과 응답을 통해 통신한다.

IP프로토콜의 한계

  • 비연결성
    패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    (서버의 상태를 알 길이 없기 때문에 무조건 패킷을 전송한다)

  • 비신뢰성
    중간에 패킷이 사라지면? (중간 노드가 문제가 생겼을 때, 패킷이 소실되어도 모름)
    패킷이 순서대로 안오면? (데이터를 1500바이트씩 끊어서 보내기 때문에 순서가 다르게 전송될 수 있음)

  • 프로그램 구분
    같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?


TCP, UDP

인터넷 프로토콜 스택의 4계층

  1. 애플리케이션 계층 - HTTP, FTP
  2. 전송 계층 - TCP, UDP
  3. 인터넷 계층 - IP
  4. 네트워크 인터페이스 계층 (LAN 카드 등)

참고 ) OSI 7 계층 (출처:https://cocoon1787.tistory.com/740)


IP 패킷안에 TCP 세그먼트(PORT, 전송 제어, 순서 등)를 담아 전송하면
IP 인터넷 프로토콜의 한계를 보완할 수 있다.

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

  • 연결지향 - TCP 3 way handshake(가상 연결)
  • 데이터 전달 보증 (서버에서 전달 받았다는 응답을 해줌)
  • 순서 보장 (신뢰할 수 있는 프로토콜)

UDP 사용자 데이터그램 프로토콜 (User Datagram Protocol) 특징

  • 하얀 도화지 (기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
    But, 단순하고 빠름

⇒ IP와 거의 같다. port, 체크섬 정도만 추가 (애플리케이션에서 추가 작업 필요)
⇒ TCP 프로토콜은 손을 댈 수 없지만 UDP를 이용해서 최적화할 수 있다.


PORT

IP는 목적지 서버를 찾는 것이라면
PORT는 서버 안에서 돌아가는 애플리케이션을 구분하는 것

0 ~ 65535 할당 가능
0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

유명한 포트

  • FTP - 20, 21
  • TELNET - 23
  • HTTP - 80
  • HTTPS - 443
  • SMTP - 25 (이메일 전송할 때)

DNS

IP주소는 기억하기 어렵고, 변경될 수 있다.

DNS 도메인 네임 시스템 (Domain Name System)
도메인 명을 IP주소로 변환


스터디 문제 

IP 인터넷 프로토콜의 한계를 보완하기 위해,
IP패킷 안에 PORT, 전송 제어, 순서 등을 담아 전송하는데, 이것은 무엇일까?
정답: TCP

UDP 사용자 데이터그램 프로토콜은 기능이 거의 없어 IP의 역할과 비슷한데도 불구하고
사용하는 이유는 무엇일까?
정답: 애플리케이션에서 추가작업하여 최적화하기 위해서

인터넷 프로토콜의 4계층을 차례대로 말해보세요.
정답:   
1. 애플리케이션 계층 HTTP, FTP
2. 전송 계층 TCP, UDP
3. 인터넷 계층 IP
4. 네트워크 인터페이스 계층 Ethernet frame

HTTP와 HTTPS의 포트 번호는 무엇일까?
정답: 80, 443

** TIP!
텔넷 : 접속이 되는지 안되는지 확인 (포트가 열려있는지 확인가능)
핑 : 데이터가 잘 전달되고 있는지 확인
terminal 에서 ping naver.com 쳐보세여.
nslookup : dns 서버에서 해당 주소에 등록된 네임 서버가 어디에 등록되어있는지
terminal 에서 nslookup apple.com 쳐보세요.

profile
Front-End Developer

0개의 댓글