반응형
목차
네트워크
1. 인터넷
- 인터넷 프로토콜 스위트(TCP/ IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망.
→ 인터넷을 활용하여 멀리 있는 컴퓨터 간의 통신 가능.
1. 컴퓨터 간의 통신 방법
- 해저 광케이블
- 해저 광케이블로 물리적인 연결이 되어있음.
- 인공위성
- 인공위성을 통해 무선 통신 가능.
- 유/ 무선 방식으로 World Wide Web가 구축됨.
"인터넷 프로토콜"이란?
- 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약.
- IP에 필요한 고유 주소인 "IP 주소"와는 다름!
2. IP주소
- 각 기기 간의 통신을 식별할 수 있는 전화번호.
- 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달함.
- 192.168.0.1 은 IP에 필요한 고유 주소인 "IP 주소".
3. Packet
- 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어 어떤 컴퓨터에 데이터를 전송할지 판별 가능.
- Packet은 크게 헤더, 페이로드, 트레일러(수신 여부 포함)로 구분됨.
- 데이터를 주기만 하는 것이 아닌 받고 응답함!
IP방식의 문제점
- 애플리케이션 구분
- 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없음.
- 어떤 프로그램에 사용할 데이터인지 확실하게 구분되어야 효율적으로 데이터 통신 가능.
- 비연결성
- 수신 대상의 현재 상태에 상관없이 데이터 전송.
- 대상 컴퓨터가 전원이 꺼져있을 경우 데이터를 정상적으로 수신하지 못함.
- 비신뢰성
- 패킷이 소실되는 경우 발생.
- 패킷의 손상여부를 송신, 수신 측 모두 알 수 없음.
- 패킷의 순서가 뒤죽박죽이 되어 섞여서 들어오는 경우 발생.
- 용량이 큰 데이터의 경우 패킷이 여러 개로 나뉘어져 전송됨. → 패킷이 손실되거나, 오류가 발생하여도 데이터의 재전송을 진행하지 않음.
→ 위의 문제점 해결을 위해 등장한 것이 TCP 프로토콜.
2. TCP(Transmission Control Protocol)
- 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜.
- IP 방식에서 발생하는 패킷 손실이나 오류 발생 시 데이터를 재전송하지 않는 문제를 해결할 수 있는 대안.
1. 3 Way Hand Shake
- 3 Way Hand Shake는 물리적으로 연결되는 것이 아니라 최소한의 논리적인 연결을 통하여 연결이 되었다고 가정하는 것.
2. SYN(Synchronize)
- 클라이언트가 서버에게 연결을 요청하는 첫번째 단계.
- 클라이언트는 서버에게 "연결 의사"를 나타내기 위해 SYN 플래그가 설정된 패킷 전송.
- 패킷에는 시퀀스 번호도 포함되어 있고 데이터 전송 순서를 관리할 준비를 함.
3. ACK(Acknowledge)
- 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계.
- 서버는 클라이언트의 SYN 요청을 수락, 연결 시작 의사를 담아 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 클라이언트에게 전송.
- 서버는 클라이언트의 시퀀스 번호에 1을 더한 값을 ACK로 응답
- SYN 접속 요청
- ACK 요청 수락 → ACK가 없다면 연결 실패.
- ACK → ACK 함께 데이터 전송 가능.
- 데이터 전송 여부
→ TCP를 통해 통신하면 데이터를 잘 받았다는 응답을 반환.
- 패킷 순서
→ 패킷이 나뉘어져 올지라도 순서를 보장함.
TCP 단점
- 연결하는 과정, 데이터 전송에 시간이 많이 소요됨.
- 최소한의 논리적인 연결이 필요하기 때문에 현재 단계 이상의 최적화를 하기 힘듦. → 3 way handshake 과정을 거치는 만큼 속도가 느림.
3. UDP(User Datagram Protocol)
- 비연결형, 신뢰성이 없는 전송 프로토콜.
- 실시간 통신이나 스트리밍 애플리케이션에서 빠른 전송이 중요해서 이러한 요구를 충족하기 위해 개발됨.
UDP의 특징
- IP 방식과 거의 비슷함.
- 3 way handshake를 하지 않음.
- 데이터 전송, 응답, 순서를 보장하지 않음.
- 3 way handshake를 하지 않음.
- 추가적인 기능이 거의 없음.
- 기능이 없고 연결을 하지 않는 대신 속도가 빠름.
- IP와 차이점으로 PORT가 존재함.
- TCP에도 PORT가 존재.
- 데이터 무결성 검사 → 체크섬(Checksum)을 포함하고 있음.
- 잘못된 데이터가 전송되지 않도록 만들어줌.
1. PORT
- 같은 IP 내에서 프로세스 구분을 하기 위해서 사용.
- 프로그램을 구분하기 위해 사용되는 것이 PORT. → 쉽게 말해서 PORT는 아파트 호수와 같은 역할을 수행.
2. TCP/ IP Packet 구조
- 소스 PORT, 대상 PORT를 포함함.
- 자주 사용되는 PORT
- 0 ~ 65535 할당 가능
- 이미 사용되고 있는 포트 (0 ~ 1023)
- FTP - 20, 21 (TCP)
- SSH - 22 (TCP)
- 텔넷 - 23 (TCP)
- SMTP - 25 (TCP)
- DNS - 53 (TCP/UDP)
- DHCP - 67 (UDP)
- HTTP - 80 (TCP)
- HTTPS - 443 (TCP)
- RDP - 3389 (TCP/UDP)
- 실제 개발을 진행할 때 사용되지 않는 나머지 포트를 사용하여 개발.
반응형
'스파르타 내일배움캠프 > TIL(Today I learned)' 카테고리의 다른 글
25.03.20 TIL - 용어 모음(1) (2) | 2025.03.20 |
---|---|
25.03.19 TIL - Web (2) | 2025.03.19 |
25.03.17 TIL - 람다식 (2) | 2025.03.17 |
25.03.14 TIL - 키오스크 과제 회고 (3) | 2025.03.14 |
25.03.13 TIL - Lv3. 키오스크 과제 (2) | 2025.03.13 |