일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Go
- TCP
- 데이터베이스
- 컴퓨터 네트워크
- 데이터엔지니어링
- 컴퓨터네트워크
- 자료구조
- airflow
- Docker
- 데이터 웨어하우스
- 가상환경
- http
- PYTHON
- redshift
- 정리
- AWS
- HADOOP
- TIL
- 데이터 엔지니어링
- dockerfile
- sql
- 파이썬
- 종류
- 운영체제
- S3
- Django
- airflow.cfg
- linux
- 데브코스
- 데이터 파이프라인
- Today
- Total
목록Computer Network (29)
홍카나의 공부방
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bzOFWp/btsdjn8XXtO/S3LrGz1DbnXcSK0iDiuymk/img.png)
TCP의 연결 설정 : three-way handshake TCP는 연결 지향형 프로토콜로, source와 destination 사이에 가상 연결 통로를 설정하게 된다. 가상 연결 통로 설정 방법 중 하나는 three-way handshake이다. 연결 이후 모든 세그먼트는 해당 연결 통로로 전송된다. TCP 연결은 Layer2와 다르게 physical이 아닌, virtual(logical) 연결이라는 것도 알아두면서 아래 그림으로 이해해보자. 서버가 Passive Open 상태로 연결을 기다린다. 클라이언트가 Active Open 상태가 되면서 서버에 패킷을 전송한다. 이 과정에서 해당 패킷의 sequence number(첫번째 byte의 번호)는 해킹 방지를 위해 임의로 결정되며, 데이터 없이 헤더만..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lxSzm/btscSmXfKis/r6aLXidnkSfM5fpgQshjV0/img.png)
Transmission Control Protocol(TCP) TCP는 전송 계층에서 사용되는 연결지향 서비스다. TCP에서는 단위 데이터를 Segment라고 부른다. ( 쉽게 이해하려면 그냥 패킷을 세그먼트라고 부른다고 이해하자. ) UDP와는 다르게 TCP는 Connection당 수신 버퍼를 할당한다. TCP - Numbering System(Sequence #) 시퀀스 번호는 TCP 세그먼트에 포함된 첫번째 데이터의 번호다. 만약 시퀀스 번호가 1000이라면, 세그먼트 데이터의 첫번째 바이트 번호가 1000이라는 뜻이다. 보통 바이트 단위로 셈을 한다. TCP를 통해 데이터를 전송할 때, 데이터 크기가 MSS인 1460Bytes를 넘는다면, 세그먼트는 분할(segment)되어 보내진다. 이때 전송되..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bZMR9w/btsbXJy8bda/PaqBPLIVB4hwf7LXIT1920/img.png)
User Datagram Protocol(UDP) 통신에서 신뢰성보다는 속도에 우선순위를 둘 때, 사용하는 프로토콜이다. TCP와 다르게 신뢰성 서비스를 제공하지 않고, 비연결성 서비스이기 때문에 비교적 속도가 빠르다는 장점이 있다. UDP에서는 단위 데이터를 User Datagram이라고 지칭한다. (IP에서는 IP Packet이라고 하는 그것 맞다.) UDP의 헤더는 총 8바이트로, 간단하다. Source, Destination, Total Length, Checksum 으로 구성되어 있다. UDP의 usecase DNS 통신에서 UDP를 사용하기도 한다. DNS 통신(요청과 응답)은 패킷이 많이 필요하지도 않으며, 통신할 내용도 많지 않다. 2개의 패킷(요청, 응답)을 주고 받으려고 연결 설정을 하..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yzrtw/btsbAsMPT6g/CCvLN1iOn6mzmi1sKzHwZK/img.png)
이번 글에서는 전송 계층에 대해 전체적으로 알아본다. Process to Process, Layer 4 L3가 Host to Host 통신에 초점을 맞췄다면 L4에서는 Process to Process 간 통신에 초점을 맞춘다. 그리고 전송 계층의 TCP에서는 흐름제어, 오류제어, 혼잡제어라는 신뢰성 서비스를 제공한다. 전송 계층에는 UDP도 존재하는데 이는 비연결서비스로 구분되고, 이에 반해 TCP는 연결지향서비스로 구분된다. Port 번호 vs Process 번호 Port 번호라는 개념은 많이 들어봤을 것이다. 포트 번호는 네트워크에서 사용되는 '창구'라고 보면 된다. 하지만 우리가 작업관리자를 보면 Process ID라고 하는, 프로세스 번호가 있는데 왜 굳이 Port 번호를 이용하는 것일까? (1..