QGD Slav Defense. Black gets a prickly Caro-Kann-like position which is hard for White to crack open. Black must do two things to equalize: find a good line for the queen's bishop, and play c5 under favorable circumstances--otherwise he will be slowly constricted.
Black has obtained one of his two objectives: the QB is on a good line. Now he must work towards c5 at a favorable moment. White tries to delay this as long as possible.
16... Ba8b7
Clearing the a-file for possible rook action later, or possibly Ba6 later. 0-0 is fatal for Black after Qe4, g6; Nh4 & Nxg6.
17. Bc1d2 b4
Black cannot advance the c-pawn yet, otherwise the b-pawn hangs; so, advance the b-pawn first, then the c-pawn.
18. Rf1a1
16. ... Bb7 was a wise precaution; it prevents penetration by White's rook along the a-file.
18... c5
There it is: the great equalizer.
19. dxc5 Nd7xc5 20. Nb3xc5 Be7xc5 21. Bd3b5
The in-between check which changes ... nothing this time.
21... Ke8e7 22. Bb5c4 Rh8d8
Positional assessment at the transition from opening to mid-game: Black has completed his development. His pieces are harmoniously placed, he has a good grip on the center. White has an advanced center pawn which strikes at d6, but he cannot actually occupy d6. White must keep an eye on his f2-pawn which is under pressure.
23. Bc4xd5
The Black knight was hobbling White's position. White, I think, was worried that the Black knight might drop onto f4 (after g5 of course to support it), and so trades it off. Black can re-take three ways, but which one is right?