인터넷 네트워크
인터넷 통신
- 클라이언트 - 서버
- 서버가 바로 옆에 있으면 메시지를 바로 보낼 수 있지만
- 클라이언트 - 인터넷 - 서버
- 클라이언트와 서버가 서버가 멀리 떨어져 있다면 인터넷을 활용하여 여러 노드를 거쳐 통신이 됨
- IP (Internet Protocol)
- 노드를 통해 내가 원하는 메시지를 보내기 위해서 필요한 것이 IP주소
- IP 역할
- 지정한 IP주소에 데이터 전달
- 패킷이라는 통신 단위로 데이터 전달
- IP 패킷 정보
- 출발지 IP , 목적지 IP , 전송 데이터 등등
- IP 패킷 정보를 인터넷망에 던져주면 약속된 패킷 정보를 이해하고
- 노드끼리 통신하면서 도착지 IP로 메시지를 전달하게 됨
- 그 후 도착지 IP에서 출발지 IP에게 잘 받았다고 통신을 주게 된다
- 이때, 출발지가 요청할 때와 도착지가 응답할 때의 경로가 달라질 수 있다
- IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 패킷이 순서대로 안 오면?? 예) 메시지(1500Byte) 이상이면 끊어서 보내는데 끊어서 보낸
- 정보가 다른 노드를 사용하여 내가 원하지 않는 순서로 도착할 수 있음
- 중간에 패킷이 사라지면? 예) 광케이블이 끊기거나,
- 프로그램 구분 어려움
- 주고받는 IP 정보가 어떤 것인지 모르는 상황이 생김
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
이러한 문제를 해결할 수 있는 TCP
- 인터넷 프로토콜 스택의 4 계층
- 애플리케이션 계층 - HTTP, FTP
- 전송계층 - TCP , UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층 (LAN 드라이버 , LAN 장비)
- TCP 통신 예시
- 만약 내가 Hello, world! 메시지를 생성하여 누군가에게 보냈을 때 TCP정보 생성, 메시지 데이터 포함
- IP 패킷 생성, TCP 데이터 포함
- 이때 SOCKET 라이브러리를 통해 전달
- TCP정보 생성, 메시지 데이터 포함
- IP패킷 생성, TCP 데이터 포함
- TCP/IP 패킷 정보
- IP패킷 정보에 출발지 IP, 목적지 IP, 전송 데이터
- 출발지 PORT, 목적지 PORT, 전송 제어 , 순서 정보 , 검증 정보를 포함하여 보내줘서
- TCP (전송 제어 프로토콜)를 사용함
- TCP 특징
- 연결 지향 - TCP 3 way handshake (가상 연결)
- SYN (보내다)
- SYN+ACK (보내다 + 받았다)
- ACK (받았다)
- 데이터 전달 보증
- 순서 보장 (순서가 잘못 오면 잘못 온 패킷부터 다시 보내서 순서를 맞춤)
- 연결 지향 - TCP 3 way handshake (가상 연결)
신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용
- UDP특징
- UDP는 TCP와 같은 계층에 있는 프로토콜
- IP와 거의 비슷하지만 PORT (하나의 IP에서 여러 애플리케이션을 구분할 수 있게 해 줌)
- 와 체크섬(메시지에 대해서 맞는지 확인)만 추가됨
- UDP장점
- UDP의 장점은 내가 최적화를 원할 때 UDP에서 추가하여 내가 원하는 대로 사용할수있음내가 원하는대로 사용할 수 있어서 각광을 받고 있다
- 요즘 뜨고 있는데 WEB3.0을 사용할 때 3 way handshake를 생략하고 빠르고
- PORT
- 한 번에 둘 이상 연결해야 한다면? 이때 패킷에 출발지 IP, PORT / 도착지 IP, PORT 정보가 있으면 IP가 아파트이면 PORT가 아파트 세부 정보인 셈이다.
- 미리 PROT 지정하여 통신하면 프로세스를 구분하여 분별 가능
- IP로만 통신을 해결하려면 주고받는 패킷이 어떠한 건지 알 수가 없다
- DNS (도메인 네임 시스템)
- IP가 기억하기 어려운 특징이 있다
- IP가 바뀔 수가 있다
이럴 경우 도메인명 (XXXXX.COM) 이런 식으로 지정하여 접근 가능
'개발 개념 > 이론' 카테고리의 다른 글
[JAVA] DTO, DAO, VO 개념 (0) | 2022.01.07 |
---|---|
[네트워크] HTTP 개념 (0) | 2022.01.05 |
[Java] Array 개념 (0) | 2021.12.22 |
SPRING SERVLET (0) | 2021.11.11 |
SPRING SERVLET (0) | 2021.11.11 |
댓글