일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정리
- airflow.cfg
- 컴퓨터네트워크
- TCP
- 데이터 엔지니어링
- http
- redshift
- 컴퓨터 네트워크
- Docker
- 데이터베이스
- 데이터 파이프라인
- 파이썬
- 데이터엔지니어링
- 가상환경
- airflow
- PYTHON
- Go
- dockerfile
- TIL
- 데이터 웨어하우스
- 자료구조
- sql
- 종류
- linux
- AWS
- S3
- HADOOP
- 운영체제
- Django
- 데브코스
- Today
- Total
목록TCP (5)
홍카나의 공부방
TCP flow control TCP에서는 수신 호스트의 수신 buffer overflow를 막기 위해서 송신 호스트와 수신 호스트 간의 흐름 제어를 진행한다. 송신 호스트의 응용 프로그램과 TCP 계층 간의 흐름제어도 존재하긴 한다. 흐름 제어를 위하여 송신 버퍼의 전체 크기를 수신 버퍼 크기에 맞춰주는 방법을 택할 수 있다. 이때, 수신 측이 ACK를 보내면서 포함한 rwnd크기에 송신자는 송신 버퍼 크기, 윈도우 크기를 조절하여 데이터를 송신한다. Silly Window Syndrome silly window syndrome은 TCP의 성능 문제 중 하나로, 수신 쪽 응용 프로그램의 처리 속도가 너무 느리거나 송신 측이 지속적으로 작은 양의 데이터를 전송시킬 때 발생하는 문제다. 예를 들어서 송신 ..
TCP의 연결 설정 : three-way handshake TCP는 연결 지향형 프로토콜로, source와 destination 사이에 가상 연결 통로를 설정하게 된다. 가상 연결 통로 설정 방법 중 하나는 three-way handshake이다. 연결 이후 모든 세그먼트는 해당 연결 통로로 전송된다. TCP 연결은 Layer2와 다르게 physical이 아닌, virtual(logical) 연결이라는 것도 알아두면서 아래 그림으로 이해해보자. 서버가 Passive Open 상태로 연결을 기다린다. 클라이언트가 Active Open 상태가 되면서 서버에 패킷을 전송한다. 이 과정에서 해당 패킷의 sequence number(첫번째 byte의 번호)는 해킹 방지를 위해 임의로 결정되며, 데이터 없이 헤더만..
Transmission Control Protocol(TCP) TCP는 전송 계층에서 사용되는 연결지향 서비스다. TCP에서는 단위 데이터를 Segment라고 부른다. ( 쉽게 이해하려면 그냥 패킷을 세그먼트라고 부른다고 이해하자. ) UDP와는 다르게 TCP는 Connection당 수신 버퍼를 할당한다. TCP - Numbering System(Sequence #) 시퀀스 번호는 TCP 세그먼트에 포함된 첫번째 데이터의 번호다. 만약 시퀀스 번호가 1000이라면, 세그먼트 데이터의 첫번째 바이트 번호가 1000이라는 뜻이다. 보통 바이트 단위로 셈을 한다. TCP를 통해 데이터를 전송할 때, 데이터 크기가 MSS인 1460Bytes를 넘는다면, 세그먼트는 분할(segment)되어 보내진다. 이때 전송되..
이번 글에서는 전송 계층에 대해 전체적으로 알아본다. Process to Process, Layer 4 L3가 Host to Host 통신에 초점을 맞췄다면 L4에서는 Process to Process 간 통신에 초점을 맞춘다. 그리고 전송 계층의 TCP에서는 흐름제어, 오류제어, 혼잡제어라는 신뢰성 서비스를 제공한다. 전송 계층에는 UDP도 존재하는데 이는 비연결서비스로 구분되고, 이에 반해 TCP는 연결지향서비스로 구분된다. Port 번호 vs Process 번호 Port 번호라는 개념은 많이 들어봤을 것이다. 포트 번호는 네트워크에서 사용되는 '창구'라고 보면 된다. 하지만 우리가 작업관리자를 보면 Process ID라고 하는, 프로세스 번호가 있는데 왜 굳이 Port 번호를 이용하는 것일까? (1..