![[네트워크프로그래밍] TCP와 UDP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUNNvY%2Fbtr9013hrRy%2FOerOFay7S61uskza5BWYy1%2Fimg.jpg)
[네트워크프로그래밍] TCP와 UDPCSE/네트워크 (network)2023. 4. 13. 16:05
Table of Contents
TCP (Transmission Control Protocol)
전송 제어 프로토콜. 신뢰성 있는 정렬된 데이터 전송 제공
데이터 전송에 신뢰성과 효율성을 제공하는 여러 기능을 제공함
- 수신자의 용량에 맞게 데이터 전송 속도를 조절할 수 있음. 데이터 손실과 네트워크 혼잡을 방지하며 수신자가 데이터를 처리할 때 부담이 없도록 함
- 데이터 전송 중 발생하는 오류를 처리할 수 있음. 체크섬(checksum)을 사용하여 데이터가 오류 없이 전송되도록 하고, 전송 중에 손실, 중복 또는 손상된 패킷을 다시 전송. 네트워크 오류가 있더라도 데이터가 정확하고 신뢰성 있게 전달되도록 보장함
TCP는 강력하고 신뢰성 있는 프로토콜이지만 모든 종류의 응용 프로그램에 적합하지는 않음
- 데이터를 신뢰성 있게 순서대로 전송하기 때문에 UDP보다 느리고 효율적이지 않을 수 있음
- 또한 실시간 데이터 전송(ex, 실시간 오디오 or 비디오 스트리밍)을 필요로 하는 응용 프로그램에 적합하지 않음
TCP 사용 방법
socket()
함수로 소켓을 만들어AF_INET
주소 패밀리와SOCK_STREAM
소켓 유형을 지정connect()
함수를 사용하여 원격 서버와 연결을 시작하거나bind()
및listen()
함수를 사용하여 들어오는 연결을 수락할 수 있는 서버 소켓을 만듬- 연결이 설정되면
send()
및recv()
함수를 사용하여 각각 연결을 통해 데이터를 보내고 받을 수 있음
3-way handshake
TCP는 클라이언트와 서버 간의 연결을 설정하기 위해 3-way handshake
사용
- 클라이언트 측에서 연결 설정을 나타내는 SYN 패킷을 서버로 보냄
- 서버는 SYN-ACK 패킷으로 응답하여 SYN 패킷을 받았으며 연결을 설정하고자 한다는 것을 알림
- 클라이언트는 ACK 패킷을 보내어 SYN-ACK 패킷을 받았으며 데이터 전송을 시작할 준비가 되었다는 것을 알림
UDP (User Datagram Protocol)
사용자 데이터그램 프로토콜. 연결이 없는 불안정한 네트워크
728x90
반응형
'CSE > 네트워크 (network)' 카테고리의 다른 글
TCP/IP 프로토콜 4판 - 연습문제 3장 (2) | 2023.12.31 |
---|---|
TCP/IP 프로토콜 4판 - 연습문제 2장 (2) | 2023.12.30 |
TCP/IP 프로토콜 4판 - 연습문제 1장 (2) | 2023.12.29 |
[네트워크프로그래밍] 응용 계층 (0) | 2023.03.17 |
[네트워크프로그래밍] 네트워크란? (1) | 2023.03.17 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!